2010-01-19 104 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