2009-11-24 62 views
0

我在調用Java Web服務的代碼中發生錯誤。該代碼在我團隊其餘的PC上運行良好。我有完全相同的源代碼副本。所以我猜這是我個人電腦上的配置問題,埋在什麼地方,與源代碼本身無關?從.NET代碼調用Java Web服務時出錯?

我得到的錯誤是:

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> 

回答

0

這是由於java web服務服務器上的IP子網限制。

0

我以前在我的工作場所見過這個問題。對你來說可能完全不同,但我會分享我的經驗。

在我的場景中,這是針對不同的組策略應用於其中一臺開發PC而不是所有其他開發PC,導致當前用戶憑證未傳遞至內部代理服務器。

我會建議嘗試在web.config(也許是你自己的用戶標識)中明確設置服務的標識,看看是否能解決問題。

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

+0

我對我們的系統管理員說過。他們發誓我們都有相同的配置文件。我甚至試圖更新我的政策,以確保我擁有最新的政策。仍然不起作用。 – Bernard 2009-11-25 15:12:11

+0

我不敢肯定,我害怕。對不起,我無法提供更多幫助。 – 2009-11-25 15:26:26

0

不知道答案,但調試它的好方法是在您的機器上運行調試http代理Fiddler。抓住http會話,並將其與來自同事機器的輸出進行比較,但不會出現問題。

+0

嘗試過。因爲我正在Cassini上運行並調用遠程java Web服務,所以Fiddler不會接受Web服務調用。 我試過在IIS下運行,提琴手仍然沒有拿起Web服務調用? – Bernard 2009-11-25 15:11:33