Windows Server 2003 R2 (x86) / IIS 6.
Я настраиваю приложение ASP.NET, а также несколько служб Windows, которые работают под «MyServiceAccount». Однако я не могу запустить ни пул приложений, ни оконные службы.
MyServiceAccount находится в IIS_WPG, имеет соответствующие права локальной политики и разрешения NTFS, и я даже попытался предоставить ему локального администратора.
Пул приложений постоянно выходит из строя и автоматически останавливается IIS. Ошибка, которую я вижу в журнале системных событий:
Неожиданно завершился процесс, обслуживающий пул приложений MyAppPool. Идентификатор процесса был «7976». Код выхода процесса был «0x80».
Службы окна выходят из строя сразу после запроса запуска, и регистрируется следующая ошибка:
Тайм-аут (30000 миллисекунд) ожидания подключения службы MyService.
Мои исследования показывают, что код выхода 0x80 часто связан с исчерпанием кучи рабочего стола. Я запустил инструмент dheapmon от Microsoft, и он говорит об отсутствии давления кучи:
Desktop Heap Information Monitor Tool (Version 8.1.2925.0)
Copyright (c) Microsoft Corporation. All rights reserved.
-------------------------------------------------------------
Session ID: 1 Total Desktop: ( 4288 KB - 3 desktops)
WinStation\Desktop Heap Size(KB) Used Rate(%)
-------------------------------------------------------------
WinSta0\Default 4096 11.5
WinSta0\Disconnect 64 4.0
WinSta0\Winlogon 128 7.4
-------------------------------------------------------------
Перезагрузка сервера позволяет как службам Windows, так и пулам приложений IIS работать правильно, но только в течение короткого периода времени. (От минут до часа или около того.) Это говорит о том, что проблема связана с нехваткой памяти (или другим накопительным процессом).
Я попытался разрешить процессам использовать общую кучу рабочего стола, как описано здесь:
http://support.microsoft.com/kb/831135
Но это привело к тому, что WWW Publishing Service вообще не запустился, поэтому мне пришлось откатить изменение. Более того, тот факт, что я не вижу давления кучи, заставляет меня думать, что в любом случае происходит что-то еще.
В качестве проверки работоспособности я также использовал SysInternals Process Monitor, чтобы узнать, получаю ли я какие-либо ошибки отказа в доступе к файлу или реестру, и я не увидел ни одной.
Любая помощь будет принята с благодарностью.