加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

HttpHandler无法在ASP.NET MVC3 Web应用程序中工作

发布时间:2020-12-16 07:22:33 所属栏目:asp.Net 来源:网络整理
导读:我最近采用了一个现有的ASP.NET 3.5 Web表单应用程序,该应用程序去年升级到.NET 4(并且运行良好)并将其配置为运行ASP.NET MVC3,遵循Scott Hanselman的博客文章: Integrating ASP.NET MVC 3 into existing upgraded ASP.NET 4 Web Forms applications.它的工
我最近采用了一个现有的ASP.NET 3.5 Web表单应用程序,该应用程序去年升级到.NET 4(并且运行良好)并将其配置为运行ASP.NET MVC3,遵循Scott Hanselman的博客文章: Integrating ASP.NET MVC 3 into existing upgraded ASP.NET 4 Web Forms applications.它的工作原理好吧,我已经成功地开始介绍基于Razor的观点,现有的aspx页面继续发挥作用.

然而,停止工作的一件事是自定义HttpHandler(我们的负载均衡器命中特定地址以确保应用程序可用 – 处理程序用于该地址). web.config始终在system.web部分中声明处理程序,如下所示:

<httpHandlers>
  <add verb="*" path="system/heartbeat.aspx"
    type="My.Monitor.HttpHandlers.LoadBalancerHandler,My.Monitor"/>
</httpHandlers>

现在我们正在测试post-MVC3,我得到的异常是:

The controller for path
‘/system/heartbeat.aspx’ was not found
or does not implement IController.

我在Global.asax中定义了一个RegisterRoutes方法,并从Application_Start调用该方法.在RegisterRoutes中,我收到了Hanselman博客的IgnoreRoute声明:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");

我认为这是为了防止路由系统采用扩展名为.aspx的任何东西.

我可以在调试时在VS2010中重现该问题,并且部署环境正在运行IIS 6.

我该怎么做才能阻止路由系统尝试处理该地址,以便自定义处理程序可以做到这一点?任何帮助表示赞赏.

解决方法

试试这样:

routes.IgnoreRoute("system/heartbeat.aspx");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读