如何将HTTP处理程序用于选定路径,将MVC处理程序用于其他路径?

时间:2011-09-29 10:56:40

标签: .net asp.net asp.net-mvc iis httphandler

我有一个MVC2应用程序。我还有一组来自System.Web.IHttpHandler的现成HTTP处理程序。我如何一起使用它们?

我在web.config中尝试了以下内容:

<system.webServer>
    <!--other stuff-->
        <handlers>
            <add name="MyCustomHandler" verb="GET" path="MySpecificPath*" type="CustomHandling.CustomHttpHandlerBase, CustomHAndlingAssembly"/>
            <add name="MvcHttpHandler" preCondition="integratedMode" verb="*" path="*.mvc" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/>
        </handlers>
</system.webServer>

但是控件永远不会到达我的处理程序,MVC处理程序用于所有请求。

如何将处理程序用于一个特定路径,将MVC处理程序用于所有其他路径?

1 个答案:

答案 0 :(得分:2)

我认为您需要在应用程序启动时忽略来自路径集合的特定路径。例如,

routes.IgnoreRoute("MySpecificPath/{*pathInfo}");

否则UrlRoutingModule将与路线匹配,然后http路由器将通过IRouteHandler找到该路线。

有关将ASP.NET WebForms与ASP.NET MVC混合的详细信息,请参阅this article