Повторяющийся сбой: "необработанное исключение win32 произошло в mscorsvw.исполняемый." Как диагностировать/исправить?

Я недавно получил новый комп на работе и пришлось переустановить средств разработки и т. д. На ПК работает Windows XP (blech), и у меня установлены Visual Studio 2010 и .NET Framework 2.0, 3.5 и 4.0, каждый со всеми текущими пакетами обновления и исправлениями. Сама Windows XP также актуальна (если можно так сказать 🙂

одна повторяющаяся проблема, которую я заметил, это следующий диалог, который имеет тенденцию всплывать после того как машина была idle для a бит:

Visual Studio Just-In-Time Debugger: An unhandled win32 exception occurred in mscorsvw.exe ... Do you want to debug using the selected debugger?

Я подозреваю, что сбой из-за .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)

... в результате появилось следующее диалоговое окно ошибки:

.NET Runtime Optimization Service has encountered a problem and needs to close.

в то время как другие сборки, которые не смогли создать собственный образ, на самом деле не вызвали crash, просто сообщение об ошибке.

Итак, конкретная сборка не работает is:Microsoft.SqlServer.Управление.MultiServerConnection.

что еще я могу сделать? Меня не особенно волнует, может ли это быть ngen'D или нет на данный момент; я просто хочу остановить этот раздражающий диалог повторяющихся ошибок сверху. Я уже пробовал:

ngen uninstall Microsoft.SqlServer.Management.MultiServerConnection,

... но в нем говорится " ошибка: указанная сборка не установлена."

есть ли способ удалить сборку из ngen очереди, поэтому ngen даже не попытается создать оригинальный образ для него?

28
задан Community
01.01.2023 15:58 Количество просмотров материала 3591
Распечатать страницу

4 ответа

nGen сборки Sql Server завершается с ошибкой потому что предыдущие попытки nGening на .NET и сборки mscorlib 2.0 не. Это не имеет ничего общего с .Net 4 вообще, поэтому я предлагаю вам перестать смотреть на его службу ngen (2 и 4 используют свои собственные службы).

Что касается того, почему это не удалось-ну, в сети об этом нет огромной суммы. Я действительно нашел это на MSDN форумах хотя-там что-то о подтверждении правильно ли mscorlib был ngen'D-Я бы это проверил.

интересно, что Sql Server также упоминается в этом потоке; хотя это 2005 год, и я думаю, что сборки версии 10, о которых вы говорите, - это Sql 2008. Тем не менее, может что-то дать.

но, в конечном счете, если бы это была моя машина я бы:

  • удалить .Net 2.0 и 3.0 и 3.5 (если вы чувствуете себя храбрым удалить 4.0, а)

  • удалить любой компонент SQL сервер, содержащий сборку, не с помощью ngen.

  • установить .Net 3.5 с пакетом обновления 1 редист; убедившись, что вы есть исправления это ссылка для дальнейшего вниз по странице, а также.

  • ждать все nGening, чтобы завершить, прежде чем продолжить.

  • Если вы удалили .Net 4 переустановить сейчас слишком.

  • переустановите компонент Sql Server, удаленный на Шаге 2.

Да, я знаю, что - то вроде ответа "выключи и снова включи", но я думаю, что это лучше, чем пытаться обойти проблему. Если mscorlib 2.0 не имеет ngen'D правильно, то tbh .Net 2.0 на самом деле не используется в его текущем состоянии. И так как это компонент SQL Server, который пытается nGen - только ngen'D mscorlib v2 будет работать с ним (ngen'D mscorlib v4 не будет).

3
отвечен Andras Zoltan 2023-01-02 23:46

mscorsvw.exe можно рассматривать как программу Microsoft и до сих пор прибыль от DEP, вы можете проверить, если он действительно выключен с Process Explorer. Либо путем добавления столбца DEP, либо путем проверки свойств процесса.

Visual Studio (по крайней мере, для меня) не очень удобна для отладки сбоев, вам лучше получить дамп, чтобы мы могли попытаться взглянуть на возможные причины. Отладчик по умолчанию можно установить с помощью drwtsn32.exe -i. И если вы хотите узнать, вы могли бы использовать WinDBG, что позволяет более детально анализировать аварийные программы. Хотя, это вещи, если вы не заинтересованы в нем...

Я подозреваю, что сбой из-за .NET Framework, выполняющей компиляцию ngen системных сборок в фоновом режиме, и сбой, когда он достигает одной сборки, в частности.

не ngen.exe аварии, а не тогда? Вы можете это подтвердить ngen.exe работает?

можно настроить Контролировать Процесс так что он показывает только процесс / поток start / stops так что вы можете увидеть, что побежал, просто оставить его работает на некоторое время и проконсультироваться назад, как только вы получите, что окно отладки.

3
отвечен Tom Wijsman 2023-01-03 02:03

"Включить DEP только для основных программ и служб Windows".

С проблемы.exe это сервис, это на самом деле не влияет на него.

Как я могу диагностировать дальше?

посмотрите на файлы журнала ngen. Они, вероятно, расположены в различных папках, таких как C:\Windows\Microsoft.NET\Framework\v4.0.30319 или любые версии framework, которые вы установили.

2
отвечен sgmoore 2023-01-03 04:20

С что такое mscorsvw.exe? как отключить его от работы:

Mscorsvw .exe-это процесс, связанный с Microsoft .NET framework. Проблемы процесс используется для предварительной компиляции .Net основы сборки в фон.

Mscorsvw.процесс exe выполняется только в фон, если он должен скомпилировать сборки с наивысшим приоритетом после установка .NET framework распространяемый пакет и приложение используя .Чистая рамки установлен скомпилируйте его сборки.

обычно предкомпиляции высокий приоритет сборки будут выполняться mscorsvw.exe процесс с в 5 до 10 минуты и после этого она попробует к обрабатывать сборки с низким приоритетом, когда компьютер находится в режиме ожидания.

отключение или остановка проблемы.exe

  1. перейти к C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 в проводнике Windows.
  2. Откройте командную строку, набрав cmd в поле Выполнить и нажмите клавишу входить.
  3. теперь нам нужно указать путь в командной и теперь типа

    ngen.exe executequeueditems

    и нажмите enter.
  4. теперь дождитесь процесса предварительной компиляции всех сборок после через пару минут будет завершенный.

теперь вы наблюдаете, что не будет mscorsvw.exe процесс работает в задаче менеджер.

вы также можете использовать эту команду в любое время, чтобы увидеть, если есть что-нибудь в очереди ожидания должны быть выполнены :

ngen queue status

а также :

ngen display

очистить все очереди элементы :

ngen /delete *

чтобы узнать, какие сборки вызывают проблему, файлы журнала, которые могут помочь ответить на этот вопрос:

C:\Windows\Microsoft.NET\Framework\<version>\ngen.log
C:\Windows\Microsoft.NET\Framework\<version>\ngen_service.log

С другой стороны, вам не нужны .NET Framework 2.0 и 3.5, так как 4.0 должен заменять все из них.

1
отвечен harrymc 2023-01-03 06:37

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх