Der Versuch, neue C# 5 Async-Modell verwenden, war es überraschend für mich AspNetSynchronizationContext
ist eine interne Klasse (sowie AspNetSynchronizationContextBase
Basis). So undokumentiert. Aber es ist wichtig zu wissen, was es tut, wenn async/await-Funktion in Ihrem ASP.NET-Code verwendet wird. Bin ich richtig, dass Es tut Ihre Fortsetzungen garantieren die gleiche HttpContext.Current
als ursprüngliche Anrufer erhalten? Es nicht garantieren die Fortsetzungen werden auf dem gleichen Thread wie die Anrufer ausgeführt werden?AspNetSynchronizationContext
Wenn diese Annahme nicht wahr ist, und ich bekomme das ursprüngliche Thread kann ich sicher sein, den gleichen Thread-Kontext in Fortsetzungen zu bekommen? Ich meine Principal/Kultur mit dem Thread und lokalen Thread-Speicher verbunden? Das ist wichtig, weil die Lokalisierung von ASP.NET von der Kultur des Threads abhängt und meine Anwendung auf dem .NET-Rollensicherheitsmodell (dem Prinzip des Threads) beruht.
Große Antwort! Genau das, was ich hören wollte, plus ein paar nützliche Links. Vielen Dank! – UserControl
Ich gehe davon aus, dass "AspNetSynchronizationContext" ein wenig seltsam verhält, wenn es zu "Thread.CurrentPrincipal" kommt: http://StackOverflow.com/a/12030785/463785 wissen Sie, ob dies der Fehler "AspNetSynchronizationContext" oder etwas ist andere tiefe ASP.NET Sachen? – tugberk
kann ich nicht sicher sagen. Es ist möglich, dass der Kern-.NET-Kontext ('ExecutionContext') einige spezielle Regeln für' CurrentPrincipal' hat (aus Sicherheitsgründen), und ASP.NET kann dies nicht überwinden (z. B. in einem Teil-Vertrauens-Szenario). Aber das ist nur Vermutung. –