Windows Server 2003 SP1本机访问报错-环回检查
搭建好的程序本机无法正常访问,返回HTTP 401.1错误。客户端却能正常访问
如果安装 Microsoft Windows Server 2003 Service Pack 1 (SP1),则会出现此问题。Windows Server 2003 SP1 包括一个环回检查安全功能,用于帮助防止计算机受到反射攻击。因此,如果所使用的 FQDN 或自定义的主机标头与本地计算机名称不匹配,则会出现身份验证失败。
修复方法:
方法 1:禁用环回检查
请按照下列步骤操作:
1. 依次单击“开始”和“运行”,键入 regedit,然后单击“确定”
2. 在注册表编辑器中,找到并单击下面的注册表项: HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Control"Lsa
3. 右键单击“Lsa”,指向“新建”,然后单击“DWORD 值”
4. 键入 DisableLoopbackCheck,然后按 Enter
5. 右键单击“DisableLoopbackCheck”,然后单击“修改”
6. 在“数值数据”框中,键入 1,然后单击“确定”
7. 退出注册表编辑器,然后重新启动您的计算机
方法 2:指定主机名
要指定映射到环回地址并且可以连接到计算机上的网站的主机名,请按照以下步骤进行操作:
1. 依次单击“开始”和“运行”,键入 regedit,然后单击“确定”。
2. 在注册表编辑器中,找到并单击下面的注册表项: HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Control"Lsa"MSV1_0
3. 右键单击“MSV1_0”,指向“新建”,然后单击“多字符串值”。
4. 键入 BackConnectionHostNames,然后按 Enter。
5. 右键单击“BackConnectionHostNames”,然后单击“修改”。
6. 在“数值数据”框中,为本地计算机上的网站键入一个或多个主机名,然后单击“确定”。
7. 退出注册表编辑器,然后重新启动 IISAdmin 服务。
上述为微软提供方法,经测试成功
还有一篇老外给的方法,通过修改IIS网站所对应的认证方式来解决内网访问的问题。
Occasionally after you install Sharepoint you can get the 401.1 HTTP error when you try to navigate to Sharepoint on the same domain, but when you try to access for an external network, everything seems to work fine. This happens 'cause when you are on the same domain IIS believe that you should be authenticating using Kerberos Authentication, and, for external machines, IIS try to use NTLM first. Both Kerberos and NTLM Authentication are part of the "Integrated Windows Authentication" option on IIS. As you probally didn't want to use Kerberos authentication, you haven't edited the IIS metabase to configure the SPN (service principal name) account, and, because of this, the Kerberos Authentication will always fail. To solve this issue, you can disable the Kerberos for the website, and use just the NTLM authentication for both internal and external requests. To do so follow this steps:
- Open the IIS Manager
- Expand the local computer and then click on Web Sites
- On the sites list, find the web site you want to change and take note of the Identifier column
- open the command prompt and navigate to the following folder: "C:"inetpub"adminscripts"
- run the following command:
adsutil GET W3SVC/YOURID/Root/NTAuthenticationProviders
change YOURID for your the ID of the website you want to change
- If the command returns "Negotiate,NTLM" then Kerberos is active for the website, to change this, just run the same command again, but with the SET parameter instead of GET and with the NTLM parameter:
adsutil SET W3SVC/SEUID/Root/NTAuthenticationProviders NTLM
摘自http://www.cnblogs.com/jerry-chen/archive/2009/05/26/1489262.htmls