我制作了一个从MvcHandler派生的自定义处理程序。我使用为GetHttpHandler()返回新处理程序的自定义RouteHandler进行路由,并在自定义处理程序中覆盖ProcessRequest()。对GetHttpHandler的调用将触发断点,并且我的处理程序的构造函数肯定会被调用,但在基本MvcHandler上调用的是BeginProcessRequest(),而不是ProcessRequest()。
为什么要调用异步方法,而我还没有做任何调用呢?我不想要异步处理,我当然也没有做任何显式的事情来获得它。我的控制器都派生自控制器,而不是AsyncController。
我现在没有源代码,但如果需要,我可以稍后添加它。我希望有人能知道为什么BeginProcessRequest在不需要的时候会被调用。
发布于 2010-04-20 12:34:10
布拉德·威尔逊对我在Asp.net论坛上的帖子做出了如下回应:http://forums.asp.net/t/1547898.aspx
的简短回答是:是的。
添加了AsyncController之后,MvcHandler类现在需要成为一个IHttpAsyncHandler,这意味着就ASP.NET核心运行时而言,入口点现在是BeginProcessRequest和EndProcessRequest,而不是ProcessRequest。
听起来ProcessRequest甚至不再被调用了,但我可能弄错了。我可以说我没有在我的测试中看到它。
https://stackoverflow.com/questions/2631466
复制相似问题