Asp.net mvc 3 为什么我在IIS 7.5下部署MVC 3应用时遇到401.2/Access被拒绝错误?

Asp.net mvc 3 为什么我在IIS 7.5下部署MVC 3应用时遇到401.2/Access被拒绝错误?,asp.net-mvc-3,deployment,iis-7.5,Asp.net Mvc 3,Deployment,Iis 7.5,我正在尝试将ASP.NET MVC 3应用程序部署到Windows 2008 R2机箱。我运行Web平台安装程序来安装MVC 3位和基本IIS设置。我创建了一个新文件夹C:\Website,然后创建了一个新网站并将其指向此文件夹 我看到有一个新的应用程序池标识“ApplicationPoolIdentity”,它不同于IIS 6(是一个“特殊”用户帐户,在文件夹的“安全”选项卡中实际上不可用)。我通过键入帐户“IIS AppPool\DefaultAppPool”并授予其读取和执行/列出文件夹内

我正在尝试将ASP.NET MVC 3应用程序部署到Windows 2008 R2机箱。我运行Web平台安装程序来安装MVC 3位和基本IIS设置。我创建了一个新文件夹C:\Website,然后创建了一个新网站并将其指向此文件夹

我看到有一个新的应用程序池标识“ApplicationPoolIdentity”,它不同于IIS 6(是一个“特殊”用户帐户,在文件夹的“安全”选项卡中实际上不可用)。我通过键入帐户“IIS AppPool\DefaultAppPool”并授予其读取和执行/列出文件夹内容/读取访问权限(特别是:Traver folder/Execute file、列出文件夹/读取数据、读取属性、读取扩展属性、读取权限),手动为C:\Website文件夹分配了权限

此网站的应用程序池是为.NET framework的v4集成管道配置的

在IIS身份验证中,启用“匿名身份验证”

我的网站在web.config文件中具有身份验证模式=“Windows”。这是我第一次真正使用Windows身份验证。如果重要的话,web服务器是域的一部分

当我尝试访问该站点时,我得到一个访问被拒绝错误,401.2。我认为这可能与Windows身份验证设置有关,因此我修改了web.config并将身份验证模式设置为“无”。我也犯了同样的错误

如果我进入网站,IIS/身份验证和启用Windows身份验证,它会提示我输入用户名/密码。如果我输入我的凭证,它就会工作。然而,我担心它只会起作用,因为它实际上是在服务器上模拟我(我可以访问所有内容)。我真的不需要/想要在网站上模拟-我只使用Windows身份验证,这样我们就不必维护两组登录。网站仅检查用户作为成员的角色,以便有选择地显示/隐藏内容。网站上的默认页面没有在控制器上设置任何[授权]属性。在web.config文件中配置

第二个问题-为什么会提示我输入用户名/密码?质询/响应不会自动发生,并且只有在身份验证失败时才会提示吗

显然,这里有一些互动,我不明白,但我不知道是什么。我在事件日志中没有看到任何有用的错误

我已经搜索了错误并尝试了一些修复,例如,我尝试使用:aspnet_regiis-I从命令行重置ASP.NET配置,但没有任何运气

已解决

我能让它工作。在网站配置下有一个“.NET授权”选项。这已配置为拒绝所有匿名用户。我删除了该规则,然后添加了一个允许所有匿名用户的规则。现在我不用登录就可以访问该站点了。然后我进入IIS身份验证,启用Windows身份验证并禁用匿名身份验证

Internet Explorer在没有提示的情况下传递凭据。Firefox提示输入凭据。有一个配置设置来配置此项:

  • 打开Firefox
  • 转到:about:config(并同意继续)
  • 过滤器:network.automatic
  • 双击网络。automatic-ntml-auth.trusted-uris
  • 添加您的站点(多个站点可以用逗号分隔)。包括http://部分

我正在测试的机器没有Chrome,但在我的开发机器上似乎可以正常工作。

确保您的文件系统权限正确。如果他们试图删除部署在应用程序bin目录中的WebMatrix.Data.dll和WebMatrix.WebData.dll,我记得我也遇到过同样的问题

如果他们能回答你自己的问题,我会投票支持你的决议。解决了我的问题。