Нужна помощь, чтобы вернуть NGen в рабочее состояние - PullRequest
7 голосов
/ 07 февраля 2009

NGen несчастен на моем компьютере, и я не могу найти способ глубоко понять, что происходит не так.

После каждого запуска ngen регистрирует это сообщение:

.NET Runtime Optimization Service (clr_optimization_v2.0.50727_32) - Сервис достиг предела переходного процесса ошибки. Закроется. Последняя ошибка вернулся из Service Manager: 0x8000ffff.

И когда я пытаюсь запустить службу оптимизации в командной строке, я снова получаю ту же ошибку.

Мне удалось запустить службу ngen и немедленно приостановить очередь (записав пакетный файл из двух строк, например:

чистый старт clr_optimization_v2.0.50727_32

ngen queue pause

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

ngen executequeueditems 3 / nologo / Многословным

но результат всегда:

Катастрофический сбой (Исключение из HRESULT: 0x8000FFFF (E_UNEXPECTED))

... по пути я удалил / переустановил visual studio 2008. И я удалил SQL Server 2005, и я запустил «проверку системных файлов»: SFC / SCANNOW

Не хватает идей, и он хотел бы получить помощь от эксперта по Ngen.

Как я могу получить информацию, такую ​​как "Что вызывает эти катастрофические неудачи?" (обратите внимание, что параметр / verbose не увеличивает объем информации, которую я узнаю. "Какие файлы находятся в очереди для создания?" - Могу ли я удалить некоторые из этих файлов или возложить вину на конкретный файл ...

Деинсталляция и переустановка .net framework 2.0 не легка, так как это перспектива и защищенная часть операционной системы.

Обновление: я также попробовал совет, предложенный здесь (и упомянутый в первом ответе) - но я просто получаю то же самое сообщение о катастрофическом сбое.

C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727> NGEN executequeueditems / nologo Катастрофический сбой (Исключение из HRESULT: 0x8000FFFF (E_UNEXPECTED))

Ответы [ 3 ]

3 голосов
/ 12 февраля 2009

В ответ на эту часть вопроса:

"Что вызывает эти катастрофические неудачи? "

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

C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen.log
C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen_service.log

(Как и обычный журнал приложения, хотя он менее полезен)

В ответ на:

"Какие файлы в очереди должны быть генерируется? "

Обычный ответ таков: это можно увидеть, запустив:

ngen.exe display

(хотя в моем случае возвращается только

NGEN Roots:    
Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))

)

2 голосов
/ 02 сентября 2009

У меня была такая же проблема (установка Asp MVC 1.0). В поисках ответа я заметил Взломанный блог , где были объяснены некоторые причины Потратив 2 часа на попытки решить эту проблему, я был так расстроен, что использовал

ngen /delete *

Это сработало. Но я не уверен, не приведет ли это к небольшому бедствию; /

Может быть, это поможет ..

1 голос
/ 07 февраля 2009

С это :

Служба оптимизации среды выполнения .NET Попытки повторить сборку сборки, когда он сталкивается с тем, что он считает, что временные ошибки; примеры включают в себя ошибки RPC, ошибки нехватки памяти и т. д. Однако, после того, как он попытался скомпилировать то же самое сборка 20 раз и до сих пор не удалась чтобы сделать это, он выводит сообщение выше и выключается. Я вижу что ты уже пытался удалить .NET Framework 2.0 с вашей машины и переустановите его, но у вас все еще есть эта ошибка. Я предполагаю, что пытаясь восстановить установку не помогает или. Можете ли вы попробовать запустить "ngen.exe ExecuteQueuedItems" следуют от "ngen.exe Update" от % WINDIR% \ Microsoft.NET \ Framework \ v2.0.50727 \? Это будет пытаться собрать все сборки, которые еще не имеют любые / современные 32-битные изображения NGen синхронно, не проходя сервис оптимизации. Однажды Команда обновления завершена, вы можете один раз снова попробуйте запустить службу и проверка, чтобы увидеть, все еще ли вы получаете такое же сообщение в системном журнале? Если эта проблема не относится к сервис, я ожидаю, что вы увидите ошибки компиляции в командной строке вывод также.

...