我在 Windows Server 2008 上有一个 IIS7.5 网站,上面部署了一个 ASP.NET MVC2 网站。该网站是在 Visual Studio 2008 中构建的,目标是 .NET 3.5,并且已成功配置 IIS 5.1 以运行该网站,以进行本地测试。
我们安装了世界上最简单的 MVC 应用程序(在 Visual Studio 中创建新的 MVC2 项目时创建的应用程序),并且我们在尝试访问的任何页面上都会得到 404 - 例如
<my_server>/Home/About
将生成 404。
我问过这个问题堆栈溢出也是如此,但那是在我知道这是服务器问题之前。
我已检查了以下事项:
- IIS 日志中有 404 个条目,与每个请求相对应。
- 该网站的应用程序池设置为使用集成管道。
- “customErrors”模式设置为关闭。
- 已安装 .NET 3.5 SP1
- 已安装 ASP.NET MVC 2
- 我已经使用 MVC Diagnostics 来确认已找到所有 MVC DLL。
- ASP.NET 在 IIS 中启用,我们通过运行 MVC 诊断页面进行了演示。
- KB 2023146 确实强调了 HTTP 重定向已关闭,因此我们将其打开,但没有效果。
任何想法都将不胜感激!
有人确实指出,由于 Windows Server 2008 是 64 位,因此运行它可能会遇到问题 - 有人知道这件事吗?
答案1
我们最终通过导出工作服务器的 IIS 配置并将其与我们的配置进行比较来解决了这个问题。
这是一个非常模糊的设置,已从默认设置改变。
IIS ROOT → 请求过滤 → 文件扩展名选项卡 → 编辑功能设置 → 允许未列出的文件扩展名
此项应被勾选。
这可以在 IIS 级别或站点级别进行设置。
答案2
首先要确认的是无扩展名 URL 修补程序已应用:http://support.microsoft.com/kb/980368。
这应该可以解决问题,但如果不行,那么简单的 test.aspx 页面可以正常工作吗?
对于 ASP.NET MVC 来说,32 位还是 64 位都没有区别。两者都完全支持。