IIS 7+ MVC静态内容不在登录页面上呈现(对于未经身份验证的用户)

问题描述:

我有一个登录页面页面,应该可用于未经身份验证的用户。在我的本地ASP.Net开发服务器上,它一切正常。但是,在IIS 7上部署时,不会下载所有静态内容(如图片和脚本)。只有当用户第一次登录时才会返回图片和脚本。服务器为未经身份验证的用户返回HTTP 302。我正在使用表单身份验证& ASP.Net成员资格提供程序。IIS 7+ MVC静态内容不在登录页面上呈现(对于未经身份验证的用户)

第1步: 确保在适当的目录(“内容”和“脚本”默认情况下,MVC)已在web.config中(内部)为“匿名身份验证”启用如:

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

步骤2: 检查'IUSR'内置帐户是否具有对这些目录的读取权限。该用户默认用于所有匿名请求。

注意:您可以通过编辑C:\ Windows \ System32 \ inetsrv \ config中的applicationHost.config来更改用于匿名访问的帐户。在64位机器上,此文件只能由64位应用程序(即不是Visual Studio)编辑。记事本效果很好。确保在编辑之前进行备份。您正在寻找下一行:

<anonymousAuthentication enabled="true" userName="IUSR" /> 
+3

无法访问的匿名用户是我的问题。特别是如果您将网站托管在非默认路径中,并为您的应用程序池使用自定义帐户,则IUSR将无权。转到身份验证/右键单击匿名访问,并选择您的应用程序池标识,所有作品100%。 – 2012-10-29 19:44:27