gpt4 book ai didi

asp.net - HttpHandler 在 ASP.NET MVC3 Web 应用程序中不起作用

转载 作者:行者123 更新时间:2023-12-04 22:51:07 26 4
gpt4 key购买 nike

我最近采用了去年升级到 .NET 4 的现有 ASP.NET 3.5 Web 表单应用程序(并且一直运行良好),并按照 Scott Hanselman 的博客文章将其配置为也运行 ASP.NET MVC3:Integrating ASP.NET MVC 3 into existing upgraded ASP.NET 4 Web Forms applications .它运行良好,我已经成功地开始引入基于 Razor 和现有 aspx 的 View 。页继续工作。

然而,停止工作的一件事是自定义 HttpHandler(我们的负载平衡器命中特定地址以确保应用程序可用 - 处理程序用于该地址)。 web.config 总是在 system.web 中声明处理程序。像这样的部分:

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

现在我们正在测试后 MVC3,我收到一个异常,内容如下:

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



我定义了一个 RegisterRoutes我的 Global.asax 中的方法并且该方法是从 Application_Start 调用的.内 RegisterRoutes我有 IgnoreRoute汉塞尔曼博客的声明:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");

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

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

我该怎么做才能阻止路由系统尝试处理该地址,以便自定义处理程序可以完成它的工作?任何帮助表示赞赏。

最佳答案

像这样尝试:

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

关于asp.net - HttpHandler 在 ASP.NET MVC3 Web 应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5516517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com