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

问题描述 投票:0回答:7

我遇到以下错误:

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

该项目在本地主机上运行良好。但是当我在 IIS (7.5) 上运行它时,我得到了上述异常。

[图片] enter image description here

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

我尝试运行“aspnet_regiis - i”,因为它被接受为解决方案。但它对我来说不起作用。我不知道在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>

我还为整个项目的“IUSR”和“IIS_ISURS”用户设置了读/写/修改访问权限。 enter image description here

但是我在 IIS 上仍然遇到同样的异常。但在 VS2013 上同样运行良好。

错误: enter image description here

asp.net angularjs asp.net-web-api iis-7.5
7个回答
35
投票

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

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

您需要做的就是:

IIS ->
身份验证--> 将匿名身份验证设置为应用程序池身份。

问题解决了:)


7
投票

我还设置了“IUSR”和“IIS_IUSR”的读/写/修改访问权限 整个项目的用户。 properties image

这足以让我解决同样的问题。

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


1
投票

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

<configuration>

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

它将使您无需登录即可使用

AngularJS
文件夹中的文件


1
投票

嗯,

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

enter image description here

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

感谢您的回复。


0
投票

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


0
投票

我遇到了这个问题并禁用了我的 VPN,问题就解决了。


0
投票

@Qasim Bataineh - 谢谢!

我正在调试有问题的代码,当简单的 F5 重新加载后,在开发中完美运行的应用程序停止为开发中的所有 401 工作。

绝对世界如何?

不管怎样,现在已经修复了。

再次感谢卡西姆。今天你是超级明星。

© www.soinside.com 2019 - 2024. All rights reserved.