我有一个严重依赖网络服务的网络应用程序。服务的所有内容都是异步完成的,并且使用 AddOnPreRequestHandlerExecuteAsync。无论如何,我的大多数调用都可以正常工作,但有些调用从他们的异步服务调用返回以在 endprerequest 中找到一个空的 HttpContext.Current.Response/Request 对象,这当然会在我尝试使用其中任何一个时出错。两个对象(响应和请求在失败调用的 beginprerequest 上可用/不为空,并在其他调用的 endprerequest 中工作)。
任何人都遇到过类似的情况,或者猜测可能是什么问题?
更新:似乎找到了解决方案,如果我在 Init 上为 HttpApplication 创建一个变量(这一切都发生在 HttpModule 中),则可以从该变量访问 HttpContext。
更新:在开始函数上传递 HttpApplication 或 HttpContext.Current 有同样的问题。当作为异步调用的“状态”的一部分传递时,它们在 end 函数中最终为 null,即使它们在 begin 函数中有效。
更新:我添加了一些日志记录,发现我正在进行的异步调用正确返回,结果在那里,回调函数被正确调用。