让 ASP.NET MVC 应用程序托管在 IIS 5(6 或 7)上运行的最佳方法是什么?当我尝试发布 ASP.NET MVC 应用程序时,我收到的似乎只是 404 错误。我做了一些谷歌搜索并找到了一些解决方案,但看起来都不是超级优雅,而且我担心一旦我开始为应用程序使用共享托管环境,它们是否将无法使用。
解决方案1 http://blogs.microsoft.co.il/blogs/dorony/archive/2007/12/15/using-asp-net-mvc-on-iis-5.aspx
- 右键单击 inetmgr.exe 上的应用程序虚拟目录。
- 属性->虚拟目录选项卡->配置。
- 添加新的映射扩展。扩展名应该是 .*,这将是
映射到可执行文件
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,
或您的适当位置
计算机(您只需复制此
来自 .aspx 文件的映射)。在
映射取消选中“检查该文件
存在”。
- 3 X 好的,您就可以开始了。
- 如果需要,您可以将此设置应用到您的所有网站。在
step1、点击“默认网站”
节点而不是您自己的虚拟节点
目录,然后在步骤 2 中转到
“主目录”选项卡。剩下的就是
相同的。
通过 ASP.NET 路由所有内容似乎有点老套。
解决方案2 http://blog.pagedesigners.co.nz/?p=29
编辑 MVC 路由以在 URL 中包含 .mvc,然后按照基于此扩展的解决方案 1 中的步骤进行操作。编辑:原始图像链接丢失了,但它来自谷歌的缓存:
答案是here http://forums.asp.net/p/1239943/2294813.aspx
如果 *.mvc 扩展名未注册
对于主机,它会给出 404
例外。托管工作方式
MVC应用程序在这种情况下是修改
global.asax 中的路由计算
以下方式。
路线.添加(新
路线(“{控制器}.mvc.aspx/{动作}”,
新的 MvcRouteHandler()) {
默认值 = new RouteValueDictionary (new{ 控制器
=“你的控制器”} ) });
这样你所有的控制器
请求将以 *.mvc.aspx 结束,
这是您的主机所识别的。
当 MVC dll 被复制到
您本地的垃圾箱,无需特殊设置
需要为此做一些事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)