Я недавно получил новый комп на работе и пришлось переустановить средств разработки и т. д. На ПК работает Windows XP (blech), и у меня установлены Visual Studio 2010 и .NET Framework 2.0, 3.5 и 4.0, каждый со всеми текущими пакетами обновления и исправлениями. Сама Windows XP также актуальна (если можно так сказать 🙂
одна повторяющаяся проблема, которую я заметил, это следующий диалог, который имеет тенденцию всплывать после того как машина была idle для a бит:
Я подозреваю, что сбой из-за .NET Framework, выполняющей компиляцию ngen системных сборок в фоновом режиме, и сбой, когда он достигает одной сборки, в частности.
Я нашел еще одно упоминание этой проблемы на форумах MSDN, и одним из предлагаемых обходных путей является настройка функции предотвращения выполнения данных Windows XP "Включить DEP для основных программ Windows и только услуги". Тем не менее, это уже параметр влияет на мой ПК.
как я могу диагностировать дальше? Когда я пытаюсь подключиться к процессу, он уже ушел.
есть ли другие предлагаемые или вероятные исправления?
обновление:
Я нашел еще немного информации о ngen платформы здесь и здесь.
Я побежал следующее В командной строке:ngen executequeueditems
.. теперь это позволяет мне достоверно воспроизвести проблему, а не ждать выполнения фонового ngen.
Итак, когда ngen.exe
есть следующая запись:
Compiling assembly Microsoft.SqlServer.Management.MultiServerConnection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 (CLR v2.0.50727) ...
WARNING: Cannot hardbind to mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 because dependency does not have a native image (check FusLogVw for reason)
Failed to generate native code for dependent image Microsoft.SqlServer.Management.MultiServerConnection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 because of the following error: The remote procedure call failed. (Exception from HRESULT: 0x800706BE)
... в результате появилось следующее диалоговое окно ошибки:
в то время как другие сборки, которые не смогли создать собственный образ, на самом деле не вызвали crash, просто сообщение об ошибке.
Итак, конкретная сборка не работает is:Microsoft.SqlServer.Управление.MultiServerConnection.
что еще я могу сделать? Меня не особенно волнует, может ли это быть ngen'D или нет на данный момент; я просто хочу остановить этот раздражающий диалог повторяющихся ошибок сверху. Я уже пробовал:
ngen uninstall Microsoft.SqlServer.Management.MultiServerConnection
,
... но в нем говорится " ошибка: указанная сборка не установлена."
есть ли способ удалить сборку из ngen очереди, поэтому ngen даже не попытается создать оригинальный образ для него?