6

Несколько недель назад на ноутбуке моей компании начались странные проблемы. Я больше не мог запускать Microsoft Developer Web Server (через Visual Studio-> Debug). Позже я понял, что не могу выполнить ни одно приложение .NET.

Говоря со специалистом Microsoft CLR после просмотра моих dmp файлов, он сказал

  1. При загрузке в ваш процесс 8 байтов со смещением 0 × 168 в файлы .exe устанавливаются на 0. Это проблема, которая вызывает сбой CLR. Эти биты установлены правильно в файле, который вы мне предоставили.

  2. C:\Windows\System32\Detoured.dll загружен в процесс. Для меня это означает, что библиотека обходов используется на вашем компьютере для изменения поведения этих процессов.

Я также понял, что при загрузке в безопасном режиме все работает.

Кроме того, я выяснил, что если я щелкну правой кнопкой мыши по исполняемому файлу .NET и выберу "Запуск от имени" и введу учетные данные пользователя, вошедшего в систему в данный момент, то приложение будет работать. Это просто не работает, если я просто дважды щелкну по приложению.

Там много системных сообщений о событиях и ошибок типа доктора Ватсона. Вот несколько, которые я получаю:

При запуске MS Developer Web Server из Visual Studio всплывающее окно с сообщением говорит:

WebDev.WebServer40.exe has encountered a problem and needs
to close. We are sorry for the inconvenience.

Записи журнала системных событий VSHost:

Event 1:
Application: MyWebSite.vshost.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an internal error
in the .NET Runtime at IP 791A8BBD (79140000) with exit code 80131506.

Event 2:
Faulting application MyWebSite.vshost.exe, version 10.0.30319.1, 
stamp 4ba2084b, faulting module clr.dll, version 4.0.30319.1, 
stamp 4ba1d9ef, debug? 0, fault address 0x00068bbd.

Записи журнала системных событий для запуска сторонних приложений:

Source: Application Popup
Description: Application popup: #APPNAME#.exe – Application Error : The 
application failed to initialize properly (0xc000007b). Click on OK 
to terminate the application.

Созданные мной приложения, использующие системные журналы событий .NET v4 Framework, говорят:

Source: .NET Runtime
Framework Version: v4.0.30319
Description: The process was terminated due to an internal error in the 
.NET Runtime at IP 791A8BBD (7914000) with exit code 80131506.

Созданные мной приложения, использующие системные журналы событий .NET v2 Framework, говорят:

Source: .NET Runtime
Description: .NET Runtime version 2.0.50727.3053 – Fatal Execution 
Engine Error (7A097706) (80131506)

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

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

Как я могу выяснить, какой процесс вызывает проблему, а затем исправить компьютер?

3 ответа3

3

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

В связи с усилиями, которые вы уже вложили в этот проект, я бы посоветовал переформатировать жесткий диск и переустановить XP, а затем переустановить все продукты по одному, перезагрузить компьютер, чтобы проверить, вернулась ли проблема. Кроме того, вы можете удалить продукты с помощью Revo Uninstaller, но даже Revo может пропустить особенно хитрую установку.

Честно говоря, исполняемые файлы, которые изменяются при запуске, имеют запах вирусной инфекции, поэтому в этом случае я настоятельно рекомендую переформатировать.

0

Я бы попробовал использовать Dependency Walker. Профилируйте свою программу и сохраните вывод. Загрузитесь в безопасном режиме и снова профиль. Сравнение результатов может дать больше информации о том, когда программа модифицируется.

Вы также можете попробовать использовать WinDbg из Средства отладки для Windows. (Эта ссылка предназначена для разработчиков драйверов, но я использовал WinDbg для программ .NET.) Чтобы получить максимально отладочную информацию, вам также понадобится пакет символов Windows для XP.

0

Возможно, ваш ответ был в первом абзаце - удалите обход. Перейдите в меню «Установка и удаление программ», найдите «Detours» и удалите его.

Объезды: http://research.microsoft.com/en-us/projects/detours/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .