Ich habe eine Web-Anwendung, die stark auf Web-Services beruht. Alles mit den Diensten erfolgt asynchron und mit AddOnPreRequestHandlerExecuteAsync. Jedenfalls funktionieren die meisten meiner Anrufe gut, aber einige kehren von ihren asynchronen Serviceaufrufen zurück, um ein NULL-HttpContext.Current.Response/Request-Objekt in der Endanforderung zu finden, was natürlich Fehler in dem Moment, in dem ich versuche, zu verwenden. Beide Objekte (Response und Request sind bei Beginn der Anforderung fehlgeschlagener Anrufe verfügbar und nicht null und arbeiten in der Endanforderung anderer Anrufe).Asynchrone HttpWebRequests und ein null HttpContext.Current.Response/Request-Objekt
Irgendjemand, der auf ähnlichem trifft, oder eine Rate hat, was das Problem sein könnte?
Update: Scheint, eine Lösung gefunden zu haben, wenn ich eine Variable für die HttpApplication auf Init (des HttpModules, in dem alles vorkommt) erstelle, kann der HttpContext von dieser Variable aus erreicht werden.
Update: Die Übergabe von entweder HttpApplication oder HttpContext.Current auf die Begin-Funktion hat das gleiche Problem. Wenn sie als Teil des "Zustands" des asynchronen Aufrufs übergeben werden, enden sie in der Endfunktion auf Null, obwohl sie in der Begin-Funktion gültig sind.
Update: Ich habe einige Protokollierung hinzugefügt und festgestellt, dass der asynchrone Aufruf, den ich mache, korrekt zurückgibt, die Ergebnisse sind da, die Callback-Funktion wird ordnungsgemäß aufgerufen.
Können Sie mit Details beschreiben, wie Sie das Problem gelöst haben – omoto
In meinem HttpModule habe ich eine Variable vom Typ HttpApplication. Im Funktionsaufruf init() setze ich diese Variable auf die HttpApplication, die an init übergeben wird. In BeginPreRequestHandlerExecute und EndPreRequestHandlerExecute verweise ich auf den aktuellen HttpContext mit oApplication.Context, wobei oApplication der Name der HttpApplication-Variable in meinem HttpModule ist. – aepheus