无法加载资源:服务器响应状态为401(未授权)/App/AngularJS/angular.min.js

时间:2014-09-22 12:06:44

标签: asp.net angularjs asp.net-web-api iis-7.5

我遇到以下错误:

Failed to load resource: the server responded with a status of 401 (Unauthorized) http://localhost/App/AngularJS/angular.min.js

该项目在localhost上正常工作。但是当我在IIS(7.5)上运行它时,我得到了上述异常。

[图像] enter image description here

我的项目是.net 4.5项目(Web.API 2.2),我在这个项目中使用AngularJS for UI。

我尝试过跑步" aspnet_regiis - 我"在某个地方,这被接受为解决方案。但它在我的案例中并没有起作用。我不知道是否需要在IIS上为Web.API项目执行[AngularJS] .js文件?

修改

我对web.config文件进行了以下更改:

<location path="AngularJS">
<system.web>
  <authorization>
    <allow users="*" />
  </authorization>
</system.web>
</location>  
<system.web>
  <authorization>
    <allow users="*" />
  </authorization>
  <compilation debug="true" targetFramework="4.5" />
 <httpRuntime targetFramework="4.5" />
</system.web>

此外,我还为&#34; IUSR&#34;设置了读/写/修改访问权限。 &安培; &#34; IIS_ISURS&#34;整个项目的用户。 enter image description here

但我仍然在IIS上遇到同样的例外。但VS2013运行良好。

错误: enter image description here

5 个答案:

答案 0 :(得分:20)

当服务器响应访问被拒绝消息(401 Unauthorized access)时,这意味着由于权限问题,匿名IIS用户帐户无法访问资源。

默认情况下,IUSR帐户用于匿名用户。

您需要做的就是:

IIS - &gt;
身份验证 - &gt; 将匿名身份验证设置为应用程序池标识。

问题解决了:))

答案 1 :(得分:4)

  

此外,我还为&#34; IUSR&#34;设置了读/写/修改访问权限。 &安培; &#34; IIS_IUSR&#34;   整个项目的用户。 properties image

这足以让我绕过同样的问题。

<强> PS。抱歉使用您的图片,只想强调您提到的对我有用的步骤。

答案 2 :(得分:1)

假设您正在使用表单身份验证,并且您在登录前尝试获取它。您可以在<configuration>内的web.config文件中使用以下内容。

<location path="AngularJS">
 <system.web>
  <authorization>
    <allow users="*" />
  </authorization>
</system.web>
</location>

它将使您AngularJS文件夹中的文件无需登录

即可使用

答案 3 :(得分:1)

那么,

这很奇怪,但确实有效。解决方案是在IIS中为“连接为”设置默认用户。请参见下面的图片。

enter image description here

我指定了管理员用户&amp;这开始在IIS中工作。我认为这是AngularJS在IIS上工作的一种要求。

感谢您的回复。

答案 4 :(得分:0)

当您将IUSR添加到应用程序文件夹安全性中时,它将起作用。