无法从同一个IIS 7服务器访问IIS 7服务器URL

我们有一个内部网站,即xxx.yyyy.com,用户通过input“http”://xxx.yyy.com访问。

当我们迁移到在新的2003服务器上运行的IIS 7时,我们的问题就开始了。 我们摆脱了单点login代码,并实现了一个安全模型,在该模型中捕获用户的域凭证,然后对用户数据库进行身份validation。

为了获得传递给我们的ASP.NET应用程序的域凭据,我们有以下设置:

匿名身份validation:禁用ASP.NET模拟:启用基本/摘要/窗体身份validation:已禁用Windows身份validation:已启用

我们允许“*”否认“?” 在web.config中。

从任何客户端PC上浏览“http”://xxx.yyy.com会导致一个域名login提示,如果你input一个合适的用户/密码,你可以进入。

但是,在远程login到服务器时浏览“http”://xxx.yyy.com将导致3个域login提示,并最终出现401错误 – 未经授权。

我们已经将这种行为追溯到我们的网站有问题,我们有网页做“屏幕抓取”使用HttpRequest在同一台服务器上调用一个url。

当从任何其他客户端执行HttpRequest时,使用通过授权凭证的testing工具,一切都很好。 因此,服务器上的内部HttpRequest调用失败,就像尝试从远程会话中浏览该服务器的URL一样。

为什么要在服务器xxx.yyy.com上的“http”://xxx.yyy.comvalidation失败?

请参阅此Microsoft支持文章:

用户在安装Windows Server 2003 Service Pack 1后访问IIS 6.0中的网页或查询Microsoft SQL Server 2000时遇到身份validation问题

症状:

您将运行Microsoft Internet信息服务(IIS)6.0或Microsoft SQL Server 2000的基于Microsoft Windows Server 2003的计算机升级到Windows Server 2003 Service Pack 1(SP1)。

完成此操作后,用户在使用Web应用程序或使用查询数据库的程序时会遇到身份validation问题。 例如,用户可能会遇到类似于以下之一的症状:

  • 当用户尝试访问从后端数据库检索数据的网页时,用户会收到“访问被拒绝”错误消息。

  • 用户无法连接到位于networking负载平衡(NLB)群集中的另一个数据库服务器。 对数据库服务器的查询失败。 用户遇到的症状可能因您的特定环境而异。