2012-06-22 125 views
58

我认为这是一个IIS错误,因为如果我在本地计算机上运行该项目,这种情况不会发生。“401未经授权”在目录

我有我的样式表在~/Content/css

目录中的所有文件在页面上不会加载,当我直接导航到他们,我得到了一个服务器错误:

401 - Unauthorized: Access is denied due to invalid credentials.

You do not have permission to view this directory or page using the credentials that you supplied.

这只与该目录发生,我没有访问任何其他文件的问题。在IIS7中我需要做些什么来阻止它?

回答

34

很可能您对该文件夹没有IUSR_ 计算机名称权限。我刚刚进行了一次快速扫描,看起来您会看到find the information you need here

如果情况并非如此,您是否被浏览器提示输入用户名和密码?如果是这样,则可能是IIS配置为仅使用集成身份验证,as described here

+2

如果您使用应用程序池来管理您的数据库/文件系统访问,请不要这样做。请继续阅读下面的imanabidi的答案。 –

+0

谢谢,在我的情况下,我只是添加了所有人的完全控制 –

+0

http://support.microsoft.com/kb/313075 - 此页面不再存在。 @ m.edmondson – Divya

2

您需要检查服务器上的文件夹权限,并检查您用来运行应用程序的帐户是否有权访问该文件夹。

-3

我发现的另一个简单的修复方法是从IIS管理器中删除本地IIS站点,然后从Visual Studio中的Web项目的“属性”中重新创建虚拟目录。

202
  1. 打开IIS,选择网站在IIS头造成401
  2. 选择认证财产
  3. 选择匿名身份验证
  4. 右键单击它,选择编辑,选择应用池身份
  5. 重新启动网站,它应该工作
+11

它的工作原理,但为什么?你能多解释一下吗? – nthapa13

+2

这似乎工作,因为默认情况下,匿名身份验证的“特定用户”是IUSR,如接受的答案中所述。但是,应用程序池*上设置的标识必须*具有整个网站的权限,否则该网站将无法加载。因此,尽管我的IUSR帐户无法访问(实际上似乎不存在),但应用程序池正在使用的帐户却是这样。 – Johann

+2

谢谢你救了我! –

4

您没有使用您提供的凭据查看此目录或页面的权限。

尽管用户已通过Active Directory进行身份验证,但仍然发生了这种情况。

访问拒绝错误可能有很多原因,但如果您认为您已经从Web应用程序正确配置了所有内容,则可能会有一些遗忘的细节。请确保您已授权经过身份验证的用户访问您的Web应用程序目录。

以下是我为解决此问题所采取的步骤。

  1. 右键单击Web应用程序的存储目录,然后选择属性,然后单击安全选项卡。

  2. 点击单击编辑...,然后添加...按钮。在输入要选择的对象名称中输入已认证的用户。,然后添加按钮。在输入要选择的对象名称中输入已认证的用户。

  3. 点击确定并且您应该将Authenticated Users视为用户名之一。如果它们没有被选中,请在低端的验证用户权限框上给予适当的权限。

  4. 点击确定两次关闭对话框。它应该立即生效,但如果您想确定,则可以为您的Web应用程序重新启动IIS。

刷新您的浏览器,它现在应该显示网页。

希望这会有所帮助!

相关问题