2010-01-19 91 views
3

默认情况下,MVC项目的web.config文件具有以下元素:为什么MvcHttpHandler从* .mvc映射?

<handlers> 
    <remove name="MvcHttpHandler"/> 
    <add name="MvcHttpHandler" preCondition="integratedMode" 
     verb="*" path="*.mvc" type="System.Web.Mvc.MvcHttpHandler"/> 
</handlers> 

我的问题是,我的网站返回404.14,淘汰所有通常的嫌疑人后,我改变了路径(形成上面的代码片段) web.config中的属性为“*”,并且瞧! MVC处理程序踢。

所以我的问题是* .mvc甚至假设如何工作?我的意思是我的网址是http://mysite.com/home/index(甚至只有http://mysite.com/),其中没有* .mvc。

我错过了什么吗?

回答

2

通过更改路径,您正在告诉路由引擎将.mvc扩展名添加到Url。您可能没有在IIS中映射.mvc扩展名并收到错误。

在这里看到关于IIS和MVC信息,特别是如果你使用的是IIS 6.0:

http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx

+0

你是对的,我失踪了* .mvc,因为我会认为这是奇怪的处理程序VS 2010 Beta 2会为我做...或者我安装VS 2010后的IIS。 – 2010-01-19 20:58:53