windows2008 IIS7 应用程序池标识导致的500错误
在我一个windows2008 web版的服务器上,当网站新打开的时候,就是说进程中没有网站对应w3wp.exe进程,第一次打开会出现500错误 内容为 无法读取web.config配置文件,但是刷新下页面就正常了。当进程被关闭后,再次访问该网站的时候,又会出现500错误。刷新即好。如果给网站根目录everyone权限则正常。
我在虚拟机搭建了2008的服务器进行了测试,我用process监控文件,测试发现如下情况:新建完网站,当网站对应应用程序池标识为ApplicationPoolIdentity的时候,每次打开网站的时候,会以IIS APPPOOL\aa用户的身份去 打开 我网站的根目录,aa是我的 手动建立的iis匿名帐号 ,网站根目录有aa权限,没有erveryone权限,导致IIS APPPOOL\aa打不开网站根目录,进一步导致500错误。
总结如下:iis每次第一次打开网站的时候,都会以应用程序池标识的 帐号去访问 网站根目录,因为网站根目录没有这个权限而导致500错误,而刷新之后 iis则会以匿名帐号去访问网站根目录,则正常。
因为安全原因,我只可能给网站根目录匿名帐号的 访问权限。
我得到了一种解决方法如下,开启。net。 应用程序池标识为 networkservice。网站程序根目录给 networkservice 和匿名帐号权限就可以正常访问。
请问,这算是bug么,还是必须给网站根目录erveryone权限,我该怎么做才能取消每次iis以应用程序池标识的身份去访问网站根目录。
在我只给网站根目录匿名帐号权限的 情况下,怎么才能不出现500错误。??