簡體   English   中英

從.NET代碼調用Java Web服務時出錯?

[英]Error calling Java web service from .NET code?

我在調用Java Web服務的代碼中遇到錯誤。 該代碼可在我團隊的其他PC上正常運行。 我有完全相同的源代碼副本。 因此,我猜這是我的PC埋在某個地方的配置問題,與源代碼本身無關嗎?

我得到的錯誤是:

客戶端身份驗證方案“匿名”禁止HTTP請求

這是來自web.config的2個配置部分。

<binding
  name="SEITokenServiceBinding"
  closeTimeout="00:01:00"
  openTimeout="00:01:00"
  receiveTimeout="00:10:00"
  sendTimeout="00:01:00"
  allowCookies="false"
  bypassProxyOnLocal="false"
  hostNameComparisonMode="StrongWildcard"
  maxBufferSize="65536"
  maxBufferPoolSize="524288"
  maxReceivedMessageSize="65536"
  messageEncoding="Text"
  textEncoding="utf-8"
  transferMode="Buffered"
  useDefaultWebProxy="true">
  <readerQuotas
    maxDepth="32"
    maxStringContentLength="8192"
    maxArrayLength="16384"
    maxBytesPerRead="4096"
    maxNameTableCharCount="16384" />
  <security
    mode="None"/>
</binding>
<client>
    <endpoint
      address="http://10.1.1.1:8180/tokenService"
      binding="basicHttpBinding"
      bindingConfiguration="SEITokenServiceBinding"
      contract="TokenService.SEITokenService"
      name="SEITokenServicePort">
      <identity></identity>
    </endpoint>
</client>

我以前在工作場所已經看到過這個問題。 對於您來說可能完全不同,但是我會分享我的經驗。

在我的方案中,這與將不同的組策略應用於一個開發PC而不是應用於所有其他開發PC有關,這導致當前用戶憑據未傳遞到內部代理服務器。

我建議嘗試在web.config中顯式設置服務的標識(也許是您自己的用戶ID),看看是否可以解決問題。

但是,這只是一個臨時解決方案,您需要發現組策略中的差異並進行修改,以使登台/開發系統完全相同。

不知道答案,但是調試它的一種好方法是在計算機上運行調試的HTTP代理,例如Fiddler 抓住http對話,並將其與未顯示該問題的同事的計算機的輸出進行比較。

這是由於Java Web服務服務器上的IP子網限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM