将ASP.NET MVC Beta部署到IIS 6导致404错误。

14

我在部署到IIS 6时遇到了来自asp.net mvc beta的404错误,一开始尝试通过在IIS中映射“.mvc”来解决这个问题,这在之前的版本中可行,但现在不起作用了。我阅读了Omar的帖子和其他几篇文章,并尝试了他们的解决方案,但迄今为止都没有成功。

主页可以在IIS 6上正常打开,但其他页面会返回404错误,而在IIS 7上运行良好。

是否有人已经成功将asp.net mvc beta部署到IIS 6?如果是,您需要对代码和/或IIS设置进行哪些调整才能使其正常工作?


2
为了好玩...检查一下通配符映射。那个小复选框“检查文件是否存在”被选中了吗?我讨厌那个小混蛋。 - user1228
3个回答

26

我从Steve Sanderson的博客中找到了解决方案(感谢Steve):

使用aspnet_isapi.dll的通配符映射。这告诉IIS 6使用ASP.NET处理所有请求,因此始终调用路由,并且没有问题。设置非常简单:

  • 打开IIS管理器(运行->inetmgr->确定)
  • 右键单击您的应用程序,转到属性
  • 然后是主目录选项卡,然后单击配置
  • 在通配符应用程序映射下,单击插入(不是添加,这很令人困惑地位于上面)
  • 然后输入C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll作为“可执行文件”,并取消选中“验证文件是否存在”。

2
太完美了!在撞墙了一个半小时后,这解决了我的问题。 - Chris Van Opstal
1
很棒的修复。节省了我很多时间。谢谢。 - pauldunlop
1
那真是太痛苦了!用拿破仑·迪纳那莫的不朽名言来说:“真是太棒了!” - TheHolyTerrah

5

我似乎还不能写评论,所以我会写一个新的答案。

在stackoverflow上有几个类似的问题。 我正在使用MVC 3. 我知道这个问题是关于MVC 2的。但由于这是我发现的第一个stackoverflow帖子,所以我认为值得一提:

  • 当您使用MVC 3时,您需要添加一个新的扩展映射与.NET 4框架的可执行文件(C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll)

<edit>我刚刚发现我甚至不需要设置扩展映射。 </edit>

  • 然后对我仍然没有用:) 我仍然需要在IIS中的Web Service Extensions部分中“允许”ASP.NET v4.0.30319:
    • 打开IIS
    • 单击服务器节点
    • 打开Web Service Extensions部分
    • 选择ASP.NET v4.0....
    • 右键单击--> 允许 就可以了!

谢谢,Web服务扩展帮了我大忙。为什么在全新安装时默认为禁止? - IronicMuffin

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接