MVC3 - IgnoreRoute RegEX

时间:2012-05-18 17:02:14

标签: asp.net-mvc-3

我似乎无法让MVC忽略这条路线(如果文件不存在则抛出未找到的控制器 - 偶尔会发生这种情况,如果生成不完整则会发生这种情况)

 /WebDirectory/signalFiles/52f23308-6d2d-40e6-9048-319e0539c83d.txt

我现在正在Global.ASAX中尝试这个以消除错误

 routes.IgnoreRoute("{*signalstxt}", new { signalstxt = @".*/signalFiles/.*.txt" });

这在RegEx测试仪中完全匹配,但在实际应用程序中什么都不做

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

由于IIS 7和& MVC3通过托管管道处理请求,它需要good deal of effort来阻止通过路由引擎运行静态文件请求。我已经看到一些证据表明将静态文件移动到Web应用程序目录之外的虚拟目录会产生预期的效果,但是没有机会为自己测试这个。

修改

澄清:您看到的异常是MVC3操作的正常部分。处理程序通知IIS管道它无法处理请求,从而调用下一个处理程序。您可以通过在Visual Studio调试设置中启用“仅我的代码”来防止它干扰您的调试。