iis6 上的 Asp.net mvc 4:“找不到页面”

Posted

技术标签:

【中文标题】iis6 上的 Asp.net mvc 4:“找不到页面”【英文标题】:Asp.net mvc 4 on iis6: "The page cannot be found" 【发布时间】:2012-04-08 12:36:36 【问题描述】:

我无法让 ASP.Net MVC 4 在 IIS 6 上运行。

首先,我收到“目录列表被拒绝” 在我根据 Phil Haack 的博文:ASP.NET MVC on IIS 6 Walkthrough 设置无扩展网址后,这已经解决了。

现在,我收到“找不到该页面”的 404 页面。

这是 MVC 4 beta 中的一个简单的 ASP.Net Web Api 项目。

【问题讨论】:

听起来像是路由问题。您要请求什么网址? 我不这么认为。它适用于我的笔记本电脑(Windows 7 - IIS7)。但是当我上传到 Windows Server (IIS6) 时,在任何 url 上都不起作用。 您是否正在“bin 部署” System.Web.Mvc.dll? 【参考方案1】:

在应用程序配置下,我将通配符扩展映射插入到:

c:\windows\microsoft.net\framework\v4.0.30319\aspnet_isapi.dll

但我忘了取消选中 Verify that file exists 复选框。

【讨论】:

我真的很讨厌那个复选框 哇...像一个小复选框这样微不足道的事情会导致整个 MVC 站点在火焰中燃烧。去图吧。 @AnwarChandra,到目前为止,我已遵循此博客“blog.stevensanderson.com/2008/07/04/…”中的选项 1、2 和 3,但没有任何效果! @DOM 您应该在 SO 上发布您自己的问题并提供更多详细信息。 这个问答如果包含来自 cmets 中链接的信息以及原始问题中的链接,会好很多,因为这些链接现在都无效。该死,那里可能有一些很好的答案......我想我会继续寻找。【参考方案2】:

我使用以下步骤解决了这个问题:

    打开 IIS 控制台 选择“Web 服务扩展” 选择“ASP.NET v4.0.30319” 点击允许

【讨论】:

【参考方案3】:

大多数情况下,通常的配置对我有用(通配符映射,取消选中验证...),但它最近在一台 Windows 2003 服务器上停止工作。我发现之前的“发布...”是使用“预编译”选项完成的,这导致了 /bin 中的 App_global.asax.dll 和 .compiled 文件。后来在一些增量手动部署过程中错误地删除了它们,并且不再注册 Web Api 路由。

我将旧的 bin/App_global.* 文件复制到服务器,它又可以工作了。

我还发现要达到相同的效果,您可以删除 /PrecompiledApp.config 文件并确保 /global.asax 存在

【讨论】:

以上是关于iis6 上的 Asp.net mvc 4:“找不到页面”的主要内容,如果未能解决你的问题,请参考以下文章

将所有请求重定向到 IIS6 上的 ASP.NET MVC

IIS 6 上的 ASP.NET MVC - 通配符映射 - 传入请求与任何路由都不匹配

IIS 6 上的 ASP.NET 路由

asp.net mvc项目中,为何在iis6上显示404错误,是何原因造成

IIS 上的 ASP.NET MVC3 和 Windows Auth 不断重定向到 /Account/Login

ASP.NET MVC eurl.axd 错误