在IIS7中托管ASP.NET出现“拒绝访问”的错误?

140

我在我的IIS7中设置了一个应用程序,使用.NET Framework 4.0(由NetworkService运行),但当浏览网站时,我遇到了这个问题:

访问被拒绝。
描述:在访问提供此请求所需的资源时发生错误。你可能没有权限查看所请求的资源。
错误信息401.3:使用你提供的凭据查看此目录或页面被拒绝访问(由于访问控制列表而被拒绝访问)。请向Web服务器管理员请求权限。

我尝试为包含网站的文件夹(IIS中的web应用程序指向的文件夹)授予NetworkService完全权限,但我仍然无法访问,为什么?


你能否请看一下我在ASP MVC在IIS 7中的结果:HTTP错误403.14 - 禁止访问上的回答? - Murat Yıldız
19个回答

307

我给了"IIS_IUser"访问权限,但正确的应该是"IUSR"。这样问题就解决了。


2
这必须被固定在发布IIS的前页! - c00000fd
41
站点 > 认证 > 匿名认证 > 编辑 > 指定用户 - Jonas
4
运作得像魔法一样!通过Windows资源管理器文件夹属性中的安全选项卡,向IUSR添加了权限。 - Filipe Borges
在遇到这个问题时,还有一件事需要检查:我在桌面上创建了一个测试网站,并在IIS中添加了一个虚拟应用程序,结果遇到了这个问题。我无法让IIS权限正常工作。将网站移动到%/inetpub/wwwroot后,问题得到解决。 - Clarice Bouwer
3
我授予了IIS_IUser和IUSR的访问权限,拥有完全控制权,然后它就可以正常工作了。 - Ronald Nsabiyera
显示剩余9条评论

189

对于我来说,除了以下方法外,没有其他方法有效,这个方法解决了问题:打开IIS,选择网站,打开身份验证(在IIS部分),右键单击匿名身份验证并选择编辑,选择应用程序池标识。


2
不错。在我使用的Win Server 2012 IIS 8上,为ASP经典网站工作良好。 - Ben_Coding
为了一个新应用程序,我必须在现有的网站中针对不同的.NET运行时进行操作,因为在应用程序的文档根目录处出现了401错误(直接访问*.aspx页面可以工作,而文档根目录则不能)。 - Matt Borja
谢谢。第一次尝试就成功了。 - GutierrezDev
3
你在2013年回答了一个问题,它在2020年8月仍然有效!谢谢 - Sharif Yazdian
此方法对我有效,或者禁用匿名身份验证,启用Windows身份验证并将IIS_IUSRS添加到权限中也会产生同样的结果。 - Jsw
显示剩余2条评论

14

我曾遇到同样的问题,在启用了 "匿名身份验证" 后,仍然无法正常工作。所以我还启用了 "表单身份验证",然后就可以顺利解决问题了。


1
当我在IIS中启用了Windows身份验证,现在一切都正常。谢谢。 - Singaravelan

5
如果您正在使用匿名身份验证,IIS 7将使用“ IUSR”帐户进行目录访问(除非您已将其设置为使用应用程序池标识。如果您没有在站点文件夹和文件上授予IUSR足够的权限,您将会遇到此错误。

5

尝试了这里大部分的解决方案,但都没有成功。最后我成功的方法是将“Everyone”添加到安全权限中。属性-> 安全性 -> 编辑 -> 添加 -> Everyone。给定的默认设置足以使我恢复访问。

在不久的将来,我应该弄清楚将发送哪些凭据到服务器,以便我可以提供适当的权限。但我希望它能帮助到有需要的人!


5

操作系统:Windows 7 & IIS 7

如果您在添加IUSR和NETWORK SERVICE后仍然遇到权限被拒绝的问题,请再添加IIS_WPG。添加此用户解决了我的问题。

对于找不到这些用户的人: 当您尝试在文件夹的安全性中添加用户(文件夹属性),请单击“选择用户或组”的窗口上的“高级”选项。将位置更改为计算机名称,然后单击“查找”。您将在下面的列表中找到这些用户。


谢谢,这对我有用!我在Windows Server 2012上使用了IIS_IUSRS,因为那里没有IIS_WPG。 - Roman O
我没有看到IIS_WPG。这是你创建的吗? - Stealth Rabbi

4
在我的Windows 7电脑上,只有在我为以下两个用户分别授予网站文件夹的'读取和执行'、'列出文件夹内容'和'读取'权限后,它才开始工作:
  • IUSR
  • NETWORK SERVICE
您可以看以下图片来了解如何设置这些权限:IUSR permissions NETWORK SERVICE permissions。请注意,不要删除HTML标签。

这个解决方案对我有效,其他什么都没用!谢谢。 - Aimal Khan

2
在APP本身(IIS中)的身份验证设置中,查看是否启用了匿名访问。

2
在我的情况下,运行c:\windows\Microsoft.Net\Framework64\v4.0.30319\aspnet_regiis.exe /i 解决了403访问被拒绝的问题。

你是真正的MVP!非常感谢!刚刚通过解决这个错误,又为我省去了一些麻烦! - Xhens

2

我在这个问题上反复思考,最终发现是默认页面设置不正确。希望这能帮助其他人避免浪费一个小时的时间。


你在哪里更改了设置? - HackSlash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接