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

时间:2009-10-05 22:24:18

标签: authentication iis-7 windows-7

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

default website - localhost:80  c:\mydirectory\localhost
virtual directory - c:\mydirectory\weborb30

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

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

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

3 个答案:

答案 0 :(得分:8)

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

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

This StackOverflow问题似乎是相关的。

答案 1 :(得分:6)

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

我认为你现在可能正在寻找的是:

aspnet_regiis -ga <useraccount> 

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

最完整的documentation I've found is on MSDN。它适用于以前版本的IIS,IIS 6,但在IIS 7环境中应用它非常容易

答案 2 :(得分:0)

尝试在此处重新启动IIS:IIS Location to restart并且不要使用iisreset等

如果不起作用,请先尝试添加here,然后重新启动(再次右键单击并重新启动界面。)然后将其恢复为正确的权限。以相同的方式重新启动

我希望它有助于它解决我在该主题中的大部分错误..