0

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

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

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

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

这在 RegEx 测试器中完美匹配,但在实际应用程序中不执行任何操作

有什么想法吗?

4

1 回答 1

0

由于 IIS 7 和 MVC3 通过托管管道处理请求的方式,需要付出大量努力来防止通过路由引擎运行静态文件请求。我已经看到一些证据表明将静态文件移动到 Web 应用程序目录之外的虚拟目录会产生预期的效果,但我没有机会亲自测试这一点。

编辑

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

于 2012-06-05T15:33:07.927 回答