2008-11-12 113 views
2
只是失败

我一直在敲打我的头撞墙试图部署在IIS6我的MVC应用程序(linked questionASP.NET MVC - 的时间.mvc路由在II6

我已经报废了通配符映射是和我试图让.mvc扩展工作。在IIS中所有配置都正确,并且.mvc扩展名指向所有动词类型​​的.NET dll(未选中验证是否存在选项)。

每次我提出请求时,我所得到的就是.NET 404页面。 /Home.mvc和/Home.mvc/Index都会返回该页面。

我没有对默认的Web.config进行任何更改,并且我的所有路由都使用基于扩展名和扩展名的等效项进行配置。

我很欣赏多么容易此配置必须(音)给大家读谁得到了它的工作,但我向你保证,我没有做任何事情不同,该矿将无法正常工作。我甚至尝试将它部署到与IIS6不同的服务器上,并且也发生了相同的问题。

难道还有其他原因路由模块/处理器是完全缺失的请求,并让它通过下降到标准的.NET 404错误?奇怪的权限?

对于IIS 404错误,我更新了自定义错误设置,因此它在站点的路由中调用了Default.aspx页面。这是在Visual Studio中生成的MVC的测试模板,后者执行以下步骤在后面的代码默认页面:

HttpContext.Current.RewritePath(Request.ApplicationPath); 
IHttpHandler httpHandler = new MvcHttpHandler(); 
httpHandler.ProcessRequest(HttpContext.Current); 

这只是然后让我从原来职位的错误:

[HttpException (0x80004005): The incoming request does not match any route.] 
    System.Web.Routing.UrlRoutingHandler.ProcessRequest(HttpContextBase httpContext) +15589 
    System.Web.Routing.UrlRoutingHandler.ProcessRequest(HttpContext httpContext) +40 
    System.Web.Routing.UrlRoutingHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context) +7 
    ...... 

回答

3

我的original problem已被Oli解决,他指出Global.asax文件是网站所必需的。我正在使用NAnt/MSBuild部署我的发行包,并且不包含Global.asax文件。此文件可以在我们所有的.NET 2个项目被忽略,并已与我们所有的恶性部署结构,所以我也没有放过这一个念头。

一个需要注意的未来。还有一点我没有发现,因此所有功劳Oli。再次感谢!

0

我还没有对 默认的Web.config进行任何更改,我所有的路由 都配置了extenionless和 扩展等效。

请告诉我的延伸和扩展名路线的顺序?

我要么删除扩展名(因为你使用的是扩展),或者确保它的扩展路径后添加(由于路径的第一比赛性质)。

此外,检查出http://www.asp.net/learn/mvc/tutorial-08-cs.aspx,只需仔细检查你的IIS设置正确(这听起来像你这样做)。

0

谢谢huey,也经过了这篇文章 - 所有配置都一样。

我的扩展名的航线是扩展问题之前输出,纯粹是因为我打算使用ISAPI重写模块,并希望从我的路由表产生的任何URL是干净的。然后他们将被重写为基于扩展名的。

虽然目前我甚至不关心无扩展名的网址,但只想获得一个版本,以便我可以向客户展示!我真的很喜欢MVC的东西,但这已经把闪光的事情。

再次感谢您的协助。

+0

随着我的设置,如果我有两个延伸和扩展名与extensionsless配置声明第一路由失败。我假设路由引擎最初是匹配的,然后IIS被给予基于非扩展的URL。我会删除extensionless并尝试出来只是为了看到。 – anonymous 2008-11-12 19:47:47

1

尝试从最简单的配置开始。将路线定义更改为使用.aspx而不是。mvc并查看/home.aspx/index是否有效。

+0

这是正确的答案。我昨天晚上在CrystalTech工作。如果我回家的时候没有发布更好的答案,我会发布我的路线。确保你的默认路由在控制器上也使用.aspx。 – 2008-11-12 23:46:06