[英]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.