問題描述:vs中調試運行沒有任何錯誤,但是發布到IIS中訪問,就會報以上錯誤。IIS不會調試,所以一頭霧水,不止錯誤在哪里。
分析:看到網上有人分析了Web.config模擬驗證的問題恍然大悟:
原文:
前兩天在VS2005下做個項目,用里面集成的Web服務調試沒問題,但當把該項目在IIS下配置后,用瀏覽器瀏覽結果則不正確,這個問題郁悶了一天,后來我想不出招就讓我同事調試了一下,他在Web.config中加了一句話:“<identity impersonate="true" userName="操作系統用戶" password="用戶密碼"/>”,瀏覽…,結果正確,后來我就在網上查了下這句話的作用,MSDN是這樣說的
1、模擬 IIS 驗證的帳戶或用戶
若要在收到 ASP.NET 應用程序中每個頁的每個請求時模擬 Microsoft Internet 信息服務 (IIS) 身份驗證用戶,必須在此應用程序的 Web.config 文件中包含 <identity> 標記,並將 impersonate 屬性設置為 true
2、為 ASP.NET 應用程序的所有請求模擬特定用戶
若要為 ASP.NET 應用程序的所有頁面上的所有請求模擬特定用戶,可以在該應用程序的 Web.config 文件的 <identity> 標記中指定 userName 和 password 屬性。例如:
<identity impersonate="true" userName="accountname" password="password" />
解決方案:詳細檢查了下web.config文件發現沒有windows驗證,添加下列語句模擬驗證即可
<identity impersonate="true" userName="accountname" password="password" />
程序員的基礎教程:菜鳥程序員