2012-10-15 13 views
22

Ich habe ein paar MVC-Projekte, die SQL CE 4.0 und Entity Framework verwenden. Seit dem Umzug in Visual Studio 2012 Ich erhalte die folgende Fehlermeldung (nicht jedes Mal, aber häufig)"LoaderLock wurde erkannt" mit Visual Studio 2012

LoaderLock wurde

Der Versuch gelang Ausführung innerhalb OS Loader Sperre erkannt. Versuchen Sie nicht, verwalteten Code innerhalb einer DllMain- oder Image-Initialisierungsfunktion auszuführen, da dies dazu führen kann, dass die Anwendung hängen bleibt.

Der Fehler tritt nicht auf, wenn ich zu VS 2010 zurückgehe, was mich ziemlich sicher macht, dass es ein Problem mit Visual Studio und nicht meinem Code ist, aber ich möchte, dass jemand das für mich bestätigt!

bearbeiten

Das Problem scheint immer dann auftreten, wenn die Dispose() -Methode des DbContext genannt wird. Hier ist ein Screenshot von den Ausnahmen-Assistenten:

Exception Assistant

+1

Oder VS2012 wird vorsichtiger als VS2010 über unsichere Konstrukte. – nneonneo

+2

Kein Call-Stack, um so schwer zu helfen. Im Allgemeinen neigt LoaderLock dazu, falsche Warnungen zu geben. Sie können es mit dem Kontrollkästchen Debug + Exceptions, MDAs, LoaderLock deaktivieren. –

+1

@Hans, es scheint keinen Call-Stack zu geben (ich habe einen Screenshot des Exception Assistant zu meinem Post hinzugefügt). Ich nehme an, das Problem besteht in nicht verwaltetem Code. – Darren

Antwort

12

I switch this off. Da es eine Warnung gibt, dass die Anwendung hängen bleiben kann, wenn Ihr Programm nicht hängt, ist es wahrscheinlich in Ordnung.

Das Problem kann jedoch in der gleichen Art und Weise gelöst werden, indem die MDA Ausschalten:

Debug -> Ausnahmen -> Managed Debug Assistants

und die LoaderLock Artikel unchecking.

4

Ich hatte auch ein Problem mit LoaderLock, wenn ich mit einer externen DLL in meiner C# -Anwendung arbeitete.

  • für die .NET 3.5 ich deaktivieren Sie einfach Thrown option in Exceptions menu (Loader lock error)
  • für die .NET 4.0 Ich habe <startup useLegacyV2RuntimeActivationPolicy="true"> in app.config
+1

Ich benutze das für den Moment, und es hat super funktioniert. Hatte das Problem mit VS 2012, v4.5 und Sql CE 4.0. Hier ist ein Link mit mehr Informationen: http://StackOverflow.com/Questions/1604663/what-does-uselegacyv2runtimeactivationpolicy-do-in-the-net-4-config/2467255#2467255 –

Verwandte Themen