"LoaderLock был обнаружен" с Visual Studio 2012
У меня есть несколько проектов MVC, которые используют SQL CE 4.0 и Entity Framework. Начиная с перехода на Visual Studio 2012, я получаю следующую ошибку (не каждый раз, но часто)
обнаружен LoaderLock
Попытка управляемого выполнения внутри блокировки загрузчика ОС. Не пытайтесь запустить управляемый код внутри функции DllMain или инициализации изображения, так как это может привести к зависанию приложения.
Ошибка не возникает, если я вернусь к использованию VS 2010, что делает меня довольно уверенным, что это проблема с Visual Studio, а не мой код, но я хотел бы, чтобы кто-то подтвердил это для меня!
Edit
Проблема всегда возникает, когда вызывается метод Dispose() для dbcontext. Вот скриншот Помощника Исключения:
![Exception Assistant]()
Ответы
Ответ 1
I отключить это. Поскольку это предупреждение о том, что приложение может зависать, если ваша программа не зависает, тогда вы, вероятно, хорошо.
Проблема может быть решена таким же образом, хотя, отключив MDA:
Отладка → Исключения → Управляемые помощники отладки
и снятие флажка с элемента LoaderLock.
Ответ 2
У меня также была проблема с LoaderLock
, когда я работал с некоторой внешней dll в моем приложении С#.
- для .NET 3.5. Я просто сниму
Thrown option
в Exceptions menu
(Ошибка блокировки загрузчика)
- для .NET 4.0 Я добавил
<startup useLegacyV2RuntimeActivationPolicy="true">
в app.config