2011-06-15 104 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