我遇到以下错误:
Failed to load resource: the server responded with a status of 401 (Unauthorized) http://localhost/App/AngularJS/angular.min.js
该项目在localhost上正常工作。但是当我在IIS(7.5)上运行它时,我得到了上述异常。
[图像]
我的项目是.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;整个项目的用户。
但我仍然在IIS上遇到同样的例外。但VS2013运行良好。
错误:
答案 0 :(得分:20)
当服务器响应访问被拒绝消息(401 Unauthorized access)时,这意味着由于权限问题,匿名IIS用户帐户无法访问资源。
默认情况下,IUSR帐户用于匿名用户。
您需要做的就是:
IIS - &gt;
身份验证 - &gt;
将匿名身份验证设置为应用程序池标识。
问题解决了:))
答案 1 :(得分:4)
此外,我还为&#34; IUSR&#34;设置了读/写/修改访问权限。 &安培; &#34; IIS_IUSR&#34; 整个项目的用户。
这足以让我绕过同样的问题。
<强> PS。抱歉使用您的图片,只想强调您提到的对我有用的步骤。
答案 2 :(得分:1)
假设您正在使用表单身份验证,并且您在登录前尝试获取它。您可以在<configuration>
内的web.config文件中使用以下内容。
<location path="AngularJS">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
它将使您AngularJS
文件夹中的文件无需登录
答案 3 :(得分:1)
那么,
这很奇怪,但确实有效。解决方案是在IIS中为“连接为”设置默认用户。请参见下面的图片。
我指定了管理员用户&amp;这开始在IIS中工作。我认为这是AngularJS在IIS上工作的一种要求。
感谢您的回复。
答案 4 :(得分:0)
当您将IUSR添加到应用程序文件夹安全性中时,它将起作用。