仅为某些路径设置RAMMFAR

Jam*_*mes 5 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.

Eil*_*lon 1

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

不过,我两个有两个旁注:

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