我有一個Web應用程序嚴重依賴Web服務。與服務的所有內容都是異步完成的,並且使用AddOnPreRequestHandlerExecuteAsync。無論如何,我的大部分調用都可以正常工作,但有些從他們的異步服務調用中返回,以便在endprerequest中找到一個空的HttpContext.Current.Response/Request對象,當然我嘗試使用這兩個對象。兩個對象(響應和請求在開始預請求失敗呼叫時可用/不爲空,並且在其他呼叫的結束請求中工作)。異步HttpWebRequests和null HttpContext.Current.Response /請求對象
任何人都會遇到類似的情況,或猜測可能是什麼問題?
更新:似乎已經找到了一個解決方案,如果我爲init上的HttpApplication創建一個變量(HttpModule全部出現),可以從該變量訪問HttpContext。
更新:在begin函數上傳遞HttpApplication或HttpContext.Current具有相同的問題。當作爲異步調用的「狀態」的一部分傳遞時,即使它們在begin函數中有效,它們也會在end函數中結束爲null。
更新:我添加了一些日誌記錄,發現我所做的異步調用正確返回,結果在那裏,回調函數調用正確。
你能詳細描述你是如何解決問題的 – omoto 2010-01-30 17:35:10
在我的HttpModule中,我有一個類型爲HttpApplication的變量。在init()函數調用中,我將此變量設置爲傳遞給init的HttpApplication。在BeginPreRequestHandlerExecute和EndPreRequestHandlerExecute中,我使用oApplication.Context引用當前的HttpContext,oApplication是HttpModule中HttpApplication變量的名稱。 – aepheus 2010-02-02 19:07:04