2010-05-14 1 views
5

ich die folgende Ausnahme bekam:InvalidOperationException: Der Vorgang rückgängig macht einen Zusammenhang festgestellt, die von dem unterscheidet, was in der entsprechenden Set Operation angewandt wurde

Exception Type: System.InvalidOperationException 
Exception Message: The Undo operation encountered a context that is different from what was applied in the corresponding Set operation. The possible cause is that a context was Set on the thread and not reverted(undone). 
Exception Stack: at System.Threading.SynchronizationContextSwitcher.Undo() 
at System.Threading.ExecutionContextSwitcher.Undo() 
at System.Threading.ExecutionContext.runFinallyCode(Object userData, Boolean exceptionThrown) 
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteBackoutCodeHelper(Object backoutCode, Object userData, Boolean exceptionThrown) 
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) 
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) 
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
at System.Net.ContextAwareResult.Complete(IntPtr userToken) 
at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) 
at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) 
Exception Source: mscorlib 
Exception TargetSite.Name: Undo 
Exception HelpLink: 

Die Anwendung ist ein Visual Studio 2005 (.NET 2.0) Konsolenanwendung . Es ist ein Server für mehrere TCP/IP-Verbindungen, die asynchrone Socket-Lesevorgänge und synchrone Socket-Schreibvorgänge ausführen.

Bei der Suche nach einer Antwort stieß ich auf this post, die über einen Anruf an Application.Doevents() spricht, die ich nicht in meinem Code verwende.

Ich fand auch this post, die eine Auflösung mit Component beteiligt, die ich auch nicht in meinem Code verwenden. Die Anwendung verweist auf eine von mir erstellte Bibliothek, die benutzerdefinierte Benutzersteuerelemente und Komponenten enthält, die jedoch nicht von der Anwendung verwendet werden.

Frage: Was hat das verursacht und wie verhindere ich, dass dies wieder passiert? Oder eine realistischere Frage: Was bedeutet diese Ausnahme eigentlich? Wie ist "Kontext" in dieser Situation definiert?

Alles, was mir helfen kann zu verstehen, was vor sich geht, würde sehr geschätzt werden.

Antwort

0

Kontext bezieht sich auf "Thread-Kontext" und steht in keiner Beziehung zu Ihrem Code. Es ist jedoch ein internes Problem mit .net, das nur auf Beta-Editionen

beschränkt sein könnte
Verwandte Themen