静态图像和CSS没有显示(401)但捆绑的css和js

tsi*_*lar 11 iis asp.net-mvc asp.net-mvc-4

我们刚刚在生产中部署了一个ASP.NET MVC 4 webapp并正在尝试一种奇怪的行为:应用程序可以工作,但图像没有显示,部分CSS没有加载.

在分析HTTP请求时,我可以看到:

  • 对图像(*.png)的请求失败,并显示401状态代码
  • 对css文件的请求失败,并显示401状态代码
  • 对捆绑资源(*.js/*.css)的请求是成功的.

该应用程序在我们的Dev/Integration/Staging和Pre-Prod环境中正常工作,所以我希望它是一些IIS配置技巧....

我们已经检查过:

  • IIS中仅启用匿名身份验证
  • IIS池用户具有对资源的读取权限

我应该补充说,还配置了一些旧的HTTP模块(如果未经过身份验证,他们会将用户重定向到某个登录页面......)

(我不知道这是否相关,但是当访问其根Url(虚拟目录)而没有尾随斜杠时,应用程序以HTTP状态401 https://{the domain}/{WebApp Name}失败...即失败但https://{the domain}/{WebApp Name}/工作正常

关于可能发生的事情的任何线索?

谢谢 !

小智 9

IIS中的文件夹验证[![] [1]] 2

我能够通过以下方式修复它:1.导航到IIS中具有css文件的文件夹2.双击"功能视图"上的"身份验证"图标3.右键单击图片中显示的匿名身份验证并选择编辑4.选择"应用程序池标识"选项如图5所示.停止并启动IIS


tsi*_*lar 7

我终于可以搞清楚了......

  1. 启用了匿名身份验证(并使用默认配置,暗示代码看到的用户是用户IUSR).
  2. Web应用程序的文件未存储在本地安装IIS的位置,而是存储在某种网络共享驱动器上....
  3. 在那个地方,IUSR没有读权限,因此无法读取静态资源.

我不得不更改默认的" pass-though身份验证 ",指定本地执行不是作为"经过身份验证的用户"(在这种情况下为IUSR).

在IIS中的WebApp基本设置中,请勿使用"pass-throuh"身份验证,请使用" Connect as "

不要使用传递身份验证 在此输入图像描述