IIS7/Win7 - 确保应用程序池标识具有对物理路径的读访问权限

Kei*_*ows 7 authentication iis-7 windows-7

我正在使用Win7和IIS7在我的笔记本电脑上运行localhost实例(因此域不是我的问题!).我在我的网站和我的一个虚拟目录上收到身份验证错误.

default website - localhost:80  c:\mydirectory\localhost
virtual directory - c:\mydirectory\weborb30
Run Code Online (Sandbox Code Playgroud)

请注意这些不在c:\ inetpub\wwwroot下!

现在,我做了一些谷歌搜索/ binging,并发现我需要将我的[machinename $]添加到ACL中.(希望我说得对.)我这样做了,即使它是域名的东西.没有改变.我进一步读到IIS7现在正在使用ApplicationPoolIdentity,我尝试在我的本地机器上找到它 - 那里没有运气.因此,我将App Pool更改为在另一个内置帐户下运行.现在,我不仅得到身份验证错误,我不能再将AttachProcess传递给W3WP.

你怎么在WIN7机箱上正确设置VS2005,IIS7才能在本地运行???

Der*_*son 8

我遇到了类似的问题,最后通过向"IUSR"用户和"IIS_IUSRS"组提供读取权限来修复它.

我不确定为什么会这样.当我认为它将包含在IIS_IUSRS组中时,需要向IUSR授予权限似乎很奇怪.我认为它的一部分与应用程序池运行的帐户有关(例如IIS 7.5/Windows 7中的经典.NET应用程序池的"IIS AppPool\Classic .NET AppPool"),但我仍然不清楚.

这个 StackOverflow问题似乎是相关的.


Ste*_*edd 6

在对应用程序池进行更改之前,您可能需要做的就是为"网络服务"帐户添加对物理目录的读取权限(这是asp.net在vista和win7上使用的默认帐户).

我想你现在可能在寻找的是:

aspnet_regiis -ga <useraccount> 
Run Code Online (Sandbox Code Playgroud)

-ga开关告诉aspnet_regiis配置asp.net的所有安全性.通常,当您在应用程序中使用模拟时,您只需要执行此操作,但如果要更改应用程序池的默认用户,那么您有效地执行IIS范围内的相同操作.

我发现的最完整的文档是在MSDN上.它适用于以前版本的IIS,IIS 6,但在IIS 7环境中应用它非常容易