我有一个 ASP.NET 4.5 MVC 应用程序。我不想设置 RAMMFAR ( runAllManagedModulesForAllRequests
),因为这会不必要地通过 ASP.NET 管道发送对静态资源的请求;但是,我确实希望所有以路径开头的请求都/Download/
通过 ASP.NET 路由管道运行,而不管扩展名如何。这样我可以将它们路由到控制器并提供动态生成的资源。
如何才能做到这一点?我无权访问 IIS 设置,但希望有办法通过web.config
.
我有一个 ASP.NET 4.5 MVC 应用程序。我不想设置 RAMMFAR ( runAllManagedModulesForAllRequests
),因为这会不必要地通过 ASP.NET 管道发送对静态资源的请求;但是,我确实希望所有以路径开头的请求都/Download/
通过 ASP.NET 路由管道运行,而不管扩展名如何。这样我可以将它们路由到控制器并提供动态生成的资源。
如何才能做到这一点?我无权访问 IIS 设置,但希望有办法通过web.config
.
RAMMFAR 设置针对每个应用程序。如果您希望站点的不同部分具有不同的设置,则必须创建单独的 IIS 应用程序,但不幸的是,您声明这不适合您。
不过,我有两个旁注:
令人惊讶的是,这个问题在 Stack Overflow 中已经很久没有得到解答了。
正如您所提到的 - 当您只需要捕获站点中特定路径的所有请求时,不需要 runAllManagedModulesForAllRequests。
您可以指定应该发送到 MVC 处理程序的路径模式,如下所示
<add name="DynamicDownloadHandler" path="/download/*" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
上面的模式将捕获无扩展和有扩展的路径。