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

pro*_*mba 2 iis-7 forms-authentication http-status-code-302 asp.net-mvc-3 iis-8

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

pro*_*mba 8

步骤1: 确保已在web.config(内部)中为"匿名身份验证"启用了相应的目录(默认情况下为MVC的"内容"和"脚本"),例如:

<location path="Content">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>
<location path="Scripts">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>
Run Code Online (Sandbox Code Playgroud)

第2步: 检查'IUSR'内置帐户是否具有对这些目录的读访问权限.默认情况下,此用户用于所有匿名请求.

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

<anonymousAuthentication enabled="true" userName="IUSR" />
Run Code Online (Sandbox Code Playgroud)

  • 没有访问权限的匿名用户是我的问题.特别是如果您在非默认路径中托管您的网站,并为您的应用程序池使用自定义帐户,IUSR将没有权限.转到身份验证/右键单击匿名访问,并选择您的应用程序池标识,所有工作100%. (3认同)