IIS7 - 401.2启用表单/匿名身份验证时出错

时间:2013-08-02 23:02:47

标签: asp.net authentication iis iis-7 windows-server-2008-r2

我在远程Win2K8R2虚拟机上安装了ASP.NET 4 Web Forms应用程序。我无法远程部署任何东西到这个盒子,所以我发了一个我在本地安装的VS2012 Web Deployment Package。我通过WebPI 4.6安装了IIS推荐配置。

我开始在集成管道模式下使用默认应用程序池(我将是IIS上唯一的Web应用程序)和LocalSystem标识。这与我成功用于Win2K8 VM和Win2K8物理盒上的其他Web应用程序的配置完全相同。

我正在使用表单/匿名身份验证。帐户目录授权以这种方式配置:

enter image description here

我的应用程序授权配置如下:

enter image description here

更新 我的应用程序身份验证配置如下:

enter image description here

我的会员提供商配置如下:

<membership defaultProvider="ActsMembershipProvider">
                <providers>
                    <clear />
                    <add connectionStringName= [myString] 
                    name= [providerName] 
                    type= [assemblyName].[providerName] />
                </providers>
</membership>

My Forms Auth的配置如下:

<authentication mode="Forms">
        <forms name=".ASPXAUTH" loginUrl="~/Account/Login.aspx" defaultUrl="~/" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true" cookieless="UseDeviceProfile" enableCrossAppRedirects="false" />
</authentication>

更新:搜索完SO后,这就是我的尝试:

  1. 使用IIS重新注册ASP.NET。 (aspnet_regiis -ir
  2. 使用IUSR作为匿名身份验证用户,授予对IUSR的完整Web应用程序目录权限。
  3. 将应用程序池标识切换到NetworkService,并将应用程序目录权限授予NETWORKSERVICE。
  4. 从IUSR切换匿名身份验证用户到我的服务器用户名(xxxx/s_usr_acts,如前面的屏幕截图所示),并赋予{app}目录s_usr_acts完全权限。
  5. aspnet_regiis at the app level
  6. 我可以访问我的登录页面,但是当我尝试登录时,我一直收到401.2错误。还有其他我可以查看或尝试的内容吗?

    其他信息:

    • 更新:我在Rackspace Win2k8生产箱和内部Win2k8虚拟机上成功配置了相同的应用程序。
    • 我正在通过ASP.NET Membership Provider进行身份验证。
    • 我正在针对Oracle的数据提供商运行EF5。

2 个答案:

答案 0 :(得分:2)

UPDATE2:当我从客户端服务器上的C:驱动器的根运行我的Web部署包时,遇到了401.2。但是,当我从桌面运行它时,我不再遇到401.2,并且“进展”到Oracle连接错误。我有这个作为答案,因为我的发现解决了具体问题,尽管我不认为这是规范的。我仍然希望能找到更接近规范答案的东西。

答案 1 :(得分:0)

我遇到了同样的问题,我在IIS身份验证面板上更改匿名身份验证凭据时解决了这个问题。当我选择“应用程序池标识”时,错误消失了。我不知道为什么这是解决方案。虽然我不知道这个错误的起源是什么,因为我只想更新我的web应用程序从除web.config文件之外的deploy文件夹复制文件。 现在,在灭火之后,我会调查它为什么会发生。目前我认为这可以帮助某人。