仅为某些路径设置RAMMFAR

时间:2013-01-01 03:36:54

标签: asp.net asp.net-mvc web-config asp.net-mvc-routing

我有一个ASP.NET 4.5 MVC应用程序。我不想设置RAMMFAR(runAllManagedModulesForAllRequests),因为这会通过ASP.NET管道不必要地发送静态资源请求;但是我确实希望所有以路径/Download/开头的请求都通过ASP.NET路由管道运行,而不管扩展名如何。这样我就可以将它们路由到Controller并提供动态生成的资源。

如何做到这一点?我无法访问IIS设置,但希望有办法通过web.config

执行此操作

1 个答案:

答案 0 :(得分:1)

RAMMFAR设置是每个应用程序。如果您希望网站的不同部分具有不同的设置,则必须创建单独的IIS应用程序,但不幸的是,您声明这不适合您。

我有两个旁注:

  1. 你确定你甚至需要RAMMFAR吗?我认为在使用IIS 7.5和更新版本时,它很少需要,因为IIS和ASP.NET几乎可以正确处理托管/本机请求。
  2. 您是否已将此识别为始终启用它的实际问题?毫无疑问,RAMMFAR会使事情变得更慢,但问题是它是否会在您的应用中产生可衡量的影响。即使静态文件通过某些托管代码,文件的最终处理也会以本机代码的形式处理。因此,有一些额外的工作可以“通过”ASP.NET托管管道,但一旦完成,它就会回到本机IIS / Windows代码。