问题描述: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" />