asp.net-mvc - 使用 IIS 的 MVC "Access is Denied"

标签 asp.net-mvc windows model-view-controller iis-7 authorization

在超出“拒绝访问”消息时遇到严重问题:

Error message 401.2: Unauthorized: Logon failed due to server configuration. Verify that you have permission to view this directory or page based on the credentials you supplied and the authentication methods enabled on the Web server. Contact the Web server's administrator for additional assistance.

我是怎么来到这里的

在 Windows 7 专业版下运行。系统使用 AD 登录系统(名称:SYSTEM\login)。在 VS2010 中创建了一个名为 XYZ 的新 MVC 3 应用程序。未更改代码。将 System.Web.mvc 和 System.Web.Helpers 的引用文件设置为 Copy to Local = true。

我的尝试

  1. 已将 XYZ 发布到文件系统位置“C:/websites/XYZ”。
  2. 将“abc.xyz.com”添加到具有 IPA 127.0.0.1 的主机文件。
  3. 在 IIS 管理器中创建名为“XYZ”的新站点,并将物理路径设置为发布应用程序的路径 (C:/websites/XYZ)。
  4. 将 XYZ 绑定(bind)到 abc.xyz.com:80。
  5. 确保站点的应用程序池运行 .NET 4.0,集成。
  6. 应用程序池标识设置为 ApplicationPoolIdentity。
  7. 在已发布文件的物理位置,右键单击文件夹并转到“属性”->“安全”并将 IUSR 添加到用户列表,并赋予其完全控制权限。
  8. MVC 项目的身份验证模式设置为“无”。
  9. 网站的身份验证已启用匿名访问并禁用所有其他访问。
  10. 我还为网站启用了目录浏览。

完成这一切后,我重置了网站,刷新了浏览器,并重置了 IIS。我在访问 abc.xyz.com 时仍然收到此消息。我完全不知道接下来应该检查什么。

我需要什么

谁能帮我解决这个问题?我使用“mvc localhost access denied”等组合进行了多次 Google 搜索,并实现了我找到的建议。

最佳答案

固定

好的。找到了答案……至少对于这个应用程序。我将身份验证从 Windows 更改为匿名。然后,我删除了拒绝匿名访问的 .NET 授权规则。这两件事使访问应用程序而无需伴随 Windows 授权的烦人的 IIS 登录弹出窗口。

我之前没有注意到的一件事是,我对网站所做的更改反射(reflect)在 已发布 位置的 web.config 文件中,而不是源。

不幸的是,每次发布时我都会重置身份验证。这可能是我遇到这么多麻烦的真正原因。学过的知识。我很懊恼。

另一件我没有弄清楚的事情是我使用的是 IIS 7.5。

关于asp.net-mvc - 使用 IIS 的 MVC "Access is Denied",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17976768/

相关文章:

windows - Windows 上的多个并行 MSys/MingW 安装

CRT 与共享库和应用程序的链接

ruby-on-rails-3 - 没有事件记录的嵌套属性

android - Android RecyclerView 中的模型、 View 和 Controller 是什么?

c# - 如何格式化 MVC3 中 TextBoxFor() 显示的 DateTime?

asp.net-mvc - 在 ASP.NET MVC 中制作可下载链接

c# - 通过 Entity Framework 提高 SQL Server 中的搜索性能

Jquery 表数据无法在 html 上正确显示

javascript - 浏览器如何在大声朗读时突出显示单词/句子?

java - MVC 模式 JButton ActionListener 不响应