小编Ste*_*ook的帖子

为什么ASP.NET Routing优先于web.config Http Handlers部分?

我们的工作室正在将ASP.NET MVC集成到一个大型Web应用程序中,该应用程序利用在system.webServer\handlers下的web.config中定义的自定义和第三方HTTP处理程序.以这种方式利用HTTP处理程序对我们来说非常好,因为我们不需要重新编译应用程序,也不需要将实际处理程序页面放在Web范围内的磁盘上,以用于每个产品实例.

是否真的有必要在我们的global.asax中添加显式的忽略路由,以便运行时可以遵守web.config中定义的处理程序?我认为在检查了system.webServer\handlers中定义的处理程序之后会调用Web.Routing (而不是相反).

我们使用模块化设计,允许在添加功能时从web.config添加/删除处理程序.随着MVC路由的引入,我们需要在global.asax文件中为web.config中定义的每个可能的处理程序添加忽略路由.

请注意,磁盘上不存在这些处理程序的实际文件 - 它们是虚拟的并嵌入在程序集中.以下是第三方处理程序的示例,现在需要在global.asax中显式忽略路由:

<system.webServer>
    <handlers>
          <!-- telerik radcontrols -->
          <add name="TelerikDialogHandler" verb="*" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler, Telerik.Web.UI, Version=2009.1.402.20, Culture=neutral, PublicKeyToken=121fae78165ba3d4"></add>
    </handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

因此,对于记录,如果您使用System.Web.Routing,则必须包含在Web.Config中指定的Http Handler的忽略路由?或许我做错了什么?

asp.net-mvc httphandler asp.net-routing asp.net-mvc-routing

9
推荐指数
1
解决办法
962
查看次数