为什么我在IIS 7.5下部署我的MVC 3应用程序时遇到401.2/Access被拒绝错误?

Pau*_*ski 9 deployment iis-7.5 asp.net-mvc-3

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

我看到有一个新的应用程序池缩进,"ApplicationPoolIdentity"与IIS 6不同(并且是一个"特殊"用户帐户,该文件夹中的安全选项卡实际上不可用).我通过键入帐户"IIS AppPool\DefaultAppPool"手动分配了对C:\ Website文件夹的权限,并为其提供了Read&Execute/List文件夹内容/读取权限(具体为:Traver文件夹/ excute文件,List文件夹/读取数据,读取属性,读取扩展属性,读取权限).

此网站的应用程序池是针对.NET框架的v4,集成管道配置的.

在IIS身份验证中启用"匿名身份验证".

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

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

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

次要问题 - 为什么我会被提示输入我的用户名/密码?挑战/响应不会自动发生,只有在身份验证失败时才会提示吗?

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

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

解决

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

Internet Explorer在不提示的情况下传递凭据.Firefox会提示输入凭据.有一个配置设置来配置:

  • 打开Firefox
  • 转至:about:config(并同意继续)
  • 筛选条件:network.automatic
  • 双击network.automatic-ntml-auth.trusted-uris
  • 添加您的网站(多个网站可以用逗号分隔).包括http://部分.

我正在测试的机器没有Chrome,但这似乎对我的开发工作正常.机.

tor*_*orm 0

确保您的文件系统权限正确。如果他们尝试删除部署在应用程序 bin 目录中的 WebMatrix.Data.dll 和 WebMatrix.WebData.dll - 这对我来说是成功的,我记得有同样的问题。