3

我制作了一个从 MvcHandler 派生的自定义处理程序。我的路由使用自定义 RouteHandler,它返回 GetHttpHandler() 的新处理程序,并在自定义处理程序中覆盖 ProcessRequest()。对 GetHttpHandler 的调用正在触发断点,并且肯定会调用我的处理程序的构造函数,但是在基础 MvcHandler 上调用 BeginProcessRequest() 而不是 ProcessRequest()。

当我没有做任何事情来调用它们时,为什么会调用异步方法?我不想要异步处理,而且我当然没有做任何明确的事情来获得它。我的控制器都派生自 Controller,而不是 AsyncController。

我现在没有源代码,但如果需要,我可以稍后添加。我希望有人可能知道在不需要时可能会调用 BeginProcessRequest 的一些原因。

4

1 回答 1

2

布拉德威尔逊回复了我在 Asp.net 论坛上的帖子,回答如下: http ://forums.asp.net/t/1547898.aspx :

简短的回答:是的。

添加 AsyncController 后,MvcHandler 类现在需要成为 IHttpAsyncHandler,这意味着就 ASP.NET 核心运行时而言,入口点现在是 BeginProcessRequest 和 EndProcessRequest,而不是 ProcessRequest。

听起来 ProcessRequest 甚至不再被调用,但我可能弄错了。我可以说我在测试中没有看到它。

于 2010-04-20T04:34:10.220 回答