Big*_*gVT 4 asp.net asp.net-mvc httphandler asp.net-mvc-routing asp.net-mvc-3
我最近采用了一个已经升级到.NET 4的现有ASP.NET 3.5 Web表单应用程序(并且运行良好),并将其配置为运行ASP.NET MVC3,遵循Scott Hanselman的博客文章:集成ASP.NET MVC 3进入现有升级的ASP.NET 4 Web Forms应用程序.它运作良好,我已成功开始基于Razor引入视图,现有aspx
页面继续工作.
然而,停止工作的一件事是自定义HttpHandler(我们的负载均衡器命中特定地址以确保应用程序可用 - 处理程序用于该地址).web.config总是在如下的system.web
部分中声明处理程序:
<httpHandlers>
<add verb="*" path="system/heartbeat.aspx"
type="My.Monitor.HttpHandlers.LoadBalancerHandler, My.Monitor"/>
</httpHandlers>
Run Code Online (Sandbox Code Playgroud)
现在我们正在测试post-MVC3,我得到的异常是:
未找到路径'/system/heartbeat.aspx'的控制器或未实现IController.
我RegisterRoutes
在我的方法中定义了一个方法,Global.asax
并从中调用该方法Application_Start
.在RegisterRoutes
我已经得到了IgnoreRoute
从Hanselman的博客的声明:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
Run Code Online (Sandbox Code Playgroud)
我认为这是为了防止路由系统采用扩展名为.aspx的任何东西.
我可以在调试时在VS2010中重现该问题,并且部署环境正在运行IIS 6.
我该怎么做才能阻止路由系统尝试处理该地址,以便自定义处理程序可以做到这一点?任何帮助表示赞赏.
Dar*_*rov 10
试试这样:
routes.IgnoreRoute("system/heartbeat.aspx");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5919 次 |
最近记录: |