使用Visual Studio 2005(Visual Studio 2008亦存在此问题)调试设置了主机头的网站时出现如下错误信息:
—————————
Microsoft Visual Studio
—————————
无法在 Web 服务器上启动调试。与 Web 服务器通信时出现身份验证错误。请参阅“帮助”以协助解决问题。
—————————
项目属性的Web中设置“项目URL”为 http://www.msdi.cn/MultiWeb
如果将“项目URL”指定为 localhost 则在设置时不会出现以上的错误,所以排除了网上绝大部分文章提供的“集成Windows身份验证”,项目属性中“启用调试”的解决方案。
真正的解决方法如下:
步骤 1: 禁用环回检查
请遵循以下步骤:
1. 打开注册表编辑器(单击 开始 , 单击 运行 , 类型 regedit然后单击 确定 )。
2. 中注册表编辑器, 找到并单击以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
3. 右击 Lsa , 指向 新建 , 然后单击 DWORD 值 。
4. 类型 DisableLoopbackCheck然后按 Enter。
5. 右击 DisableLoopbackCheck , 然后单击 修改 。
6. 在 数值数据 框中, 键入 1然后单击 确定 。
7. 退出注册表编辑器, 并重新启动计算机。 (可以不重启计算机)
步骤 2: 指定主机名
要指定主机名, 映射到环回地址并可连接到 Web 站点上, 请按照下列步骤:
1. 打开注册表编辑器(单击 开始 , 单击 运行 , 类型 regedit然后单击 确定 )。 。
2. 中注册表编辑器, 找到并单击以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
3. 右击 MSV1_0 , 指向 新建 , 然后再单击 多字符串值 。
4. 类型 BackConnectionHostNames然后按 Enter。
5. 右击 BackConnectionHostNames , 然后单击 修改 。
6. 在 数值数据 框中, 键入主机名或主机名为站点所在的本地计算机名称, 确定 。
7. 退出注册表编辑器, 并重新启动 IISAdmin 服务。
这个错误的信息只会出现在特定环境的计算机中:This issue only appears on Web Sites configured with a host header on machines with IIS 6 or IIS 5.1 and the RTM version of the .Net Framework 3.5 SP1.
参考文章:
当您浏览位置 IIS 5.1 或 IIS 6 上的网站并且使用集成身份验证时,会收到 401.1 错误
Debugging A Web Site With A Host Header