jmo*_*oss 17 .net c# asp.net-mvc routes httphandler
我一直在谷歌搜索和修补几个小时并没有取得太大进展,所以希望这里有人可以提供帮助.
我正在尝试将所有请求转到某个路径以由第三方组件处理.
编辑我需要所有其他路径的所有请求才能正常运行.
我正在使用带有通配符映射的路由处理程序,如下所示:
routes.Add(new Route("pathiwant/{*EverythingElse}", new MyRouteHandler()));
Run Code Online (Sandbox Code Playgroud)
所有传统路由都正确地转发到处理程序,处理程序很好地转发到第三方组件.当我点击静态文件(.html,.txt等)时,它们会被StaticFile处理程序而不是我的处理程序拾取,所以我试图像这样关闭StaticFile处理程序(简化):
<system.webServer>
<handlers>
<remove name="StaticFile"/>
</handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
这会关闭StaticFile处理程序,但MVC仍然不会选择路由.
我宁愿不再创建自己的处理程序并注入ASP请求堆栈,因为看起来应该有一个MVC快乐的方法来做到这一点.
有什么想法吗?谢谢.
Ken*_*Ito 15
这里有几个选项.
如果你真的想要通过asp.net管道运行所有请求,那么你需要.
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
更新
另一个选项,特别是如果您需要绕过静态处理程序被限制为您的站点的子集,则使用以下选项
<add name="ApiURIs-ISAPI-Integrated-4.0"
path="/subdirectory/*"
verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
Run Code Online (Sandbox Code Playgroud)
考虑到如何在mvc站点上,大多数静态文件是从几个众所周知的目录处理的,这是一个更好的选择.
| 归档时间: |
|
| 查看次数: |
14133 次 |
| 最近记录: |