我一直在敲打我的頭撞牆試圖部署在IIS6我的MVC應用程序(linked question)ASP.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
......
隨着我的設置,如果我有兩個延伸和擴展名與extensionsless配置聲明第一路由失敗。我假設路由引擎最初是匹配的,然後IIS被給予基於非擴展的URL。我會刪除extensionless並嘗試出來只是爲了看到。 – anonymous 2008-11-12 19:47:47