2012-12-14 54 views
2

我設法解決了這個問題,但我想幫助理解它,因爲我不喜歡解決方案。使用HttpWebRequest禁止403錯誤

我有一個WCF服務,使HttpWebRequest到Azure REST API服務。然而,當這行代碼被稱爲

HttpWebResponse response = (HttpWebResponse) request.GetResponse(); 

A 403返回禁止的錯誤。內容長度爲0,錯誤代碼和描述均爲「Forbidden」。

現在,如果我將我的代碼複製到控制檯應用程序,它工作正常。所以這導致我相信它歸結爲應用程序池標識中的權限。

果然,如果我將應用程序池的標識更改爲自己,我的代碼就開始工作。

我的問題是我如何授予權限內置ApplicationPoolIdentity帳戶,所以我可以執行一個HttpWebRequest?

回答

0

該問題很可能是由於用戶設置不適用於ApplicationPoolIdentity用戶。

我已經測試了創建WebRequest和作品都當服務是一個WCF方法自託管控制檯應用程序,當IIS下使用ApplicationPoolIdentity

託管

我已經在Windows 7機器上測試過它。

可能導致此問題的一種可能的設置可能是在代理環境中常用的HTTP代理

如果有代理設置你的登錄用戶,你可以嘗試:

1.設置的的WebRequest的Proxy屬性編程。

查看here的文檔。

OR

2. 設置代理通過在Web.config

參見here對於文檔設置defaultProxy元件一起使用。

希望這會有幫助

+0

感謝您的信息,我會試試看看會發生什麼。 – Matt