11/30
2015
服务器上的某个网站,好端端的忽然就401错误了:
HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。
我们要注意到,这里的重点是凭据而非权限。
查找了不少资料,总结了最靠谱的排查和解决办法如下:
1.到IIS中查看“目录安全性”中使用的匿名账户。
2.在本地用户和组中,查看此用户是否被禁用。如果被禁用,则开启。
3.在本地安全设置→本地策略→用户权限分配中,查看匿名访问账户或者其所属的组是否有“从网络访问此计算机”的权限,如果没有那就赋予权限。
以上几步大多数时候没卵用,因为如果没人动过服务器,这些基本不会变。
4.若以上几项未能解决问题,则更改此匿名用户的密码。
5.回到第一步,重新输入匿名账户的密码并确定。
主要问题应该出在密码上。不过重设密码的时候,会出现提示:
我被吓尿了,所以中断了这个尝试。然而最后竟也误打误撞地解决了问题。
我的做法是在网站权限里添加everyone用户,并赋予所有权利,然后发现网站可以正常打开了。之后将everyone用户的所有权利都取消,然后确定。妈呀,这个用户从网站权限里消失了。可能是权限都取消掉就会消失了吧。但是之后网站仍然可以照常打开,就这么稀里糊涂的解决了问题。
这么误打误撞为什么能解决问题,我对此有个推测:这次的401错误可能是由于iis自身原因产生的,添加上别的账户之后让网站能正常访问一次,这个错误就会自己消失或更正过来。百度知道上的一个答案用的办法也不是上面常规的办法,但其中有个地方和我的很相似,就是想办法让网站文件能正常访问到,之后就好解决了。我们这类办法仅供留作参考。
论更加奇葩的方法:https://support.microsoft.com/en-us/kb/871179