2011-06-15 102 views
1

一個IgnoreRoute方法調用之後以下異常被拋出:難度忽略路由在Asp.Net的mvc

用於路徑 「/anything.php」控制器沒有被發現或根本未 實現一個IController。

不過,我有以下的方法在我MvcApplication類:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.RouteExistingFiles = false; 

    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.IgnoreRoute("{*php}", new { php = @"(/?.*/)*\.php$" }); 

    // Some calls to routes.MapRoute occur here. 
} 

我真的不知道爲什麼,如果MVC的網站設置爲忽略這樣的路線被拋出的異常。另外,我正在通過在Visual Studio中打F5來測試網站,然後用http://localhost:12345/anything.php替換http://localhost:12345/。任何幫助深表感謝!

感謝,

安德魯

回答

0

你檢查你的正則表達式,以確保它的.Net兼容嗎?

嘗試用這個表達式替換您的正則表達式:

routes.IgnoreRoute("{*allphp}", new {[email protected]".*\.php(/.*)?"}) 
+0

感謝您的答覆,喬治!我現在得到錯誤「文件不存在」。這是否應該發生? – Andrew 2011-06-15 01:28:58

+0

@Andrew它發生,如果該文件不存在,你要求它。所以如果你的web文件夾的根目錄下沒有任何東西,你會得到404。還要認識到你需要確保IIS和ASP.NET正確地處理PHP(這將根據你的需要而變化,而且我沒有資格談論與ASP.NET MVC並排運行PHP)。 – 2011-06-15 01:39:08

+0

再次感謝。如果可能,我會嘗試通過IIS停止請求。該網站完全是asp.net mvc,但它不斷獲取這些php頁面的自動請求,可能是通過在其他服務器上運行的迂迴自動化進程。我只是想忽略這些錯誤。謝謝! – Andrew 2011-06-15 01:47:06