2009-07-20 122 views
0

我得到一個401(訪問被拒絕)調用內部Web服務的方法。我從公司內部網上的ASP.NET頁面調用它。我檢查了所有的配置,它應該使用集成的安全性與訪問該服務的帳戶,但我試圖找出如何確認佔它連接下。不幸的是我無法調試生產網絡上的代碼。在我們的開發環境中,一切工作正常。我知道這些設置必須有所不同,但我從哪裏開始感到不知所措。任何建議?如何判斷哪個帳戶試圖訪問ASP.NET Web服務?

+0

正在對你的ASP.NET應用程序中使用哪種類型的驗證?你如何向被調用的Web服務提供憑據?在您的開發環境中,ASP.NET應用程序和託管在同一臺計算機上的Web服務是什麼? – MyItchyChin 2009-07-20 20:30:49

+0

另外,請說出您正在運行的Windows/IIS版本。 IIS7中有一些整潔的東西可能會有所幫助(失敗的請求跟蹤)。 – 2009-07-20 21:26:36

回答

1

你有沒有在IIS日誌看?

0

我也建議看在服務器進行認證故障對安全事件日誌。您應該在這裏找到失敗的授權嘗試的腳印。不過要注意的是 - 每秒獲得​​10次安全事件並不罕見,所以理想情況下,您需要能夠在請求失敗時訪問事件日誌。

0

如果您在實例化Web服務時沒有指定在您的ASP.NET頁面中使用哪些憑證,那麼我相信它默認爲NT_Authority \ Anonymous

如果您使用的是System.Net.CredentialCache,那麼您的Web服務需要位於受信任的域中,通過HTTPS訪問並使用NTLM,Kerberos或Digest Auth,否則它不會從緩存中傳遞憑據。

http://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultcredentials.aspx http://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultnetworkcredentials.aspx http://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultcredentials.aspx

0

也許在生產服務器使用不同的用戶對於它的應用程序池比你的開發環境?我曾花了一天的時間找出一個。另一種選擇將是(缺乏)模擬在web.config

相關問題