У нас проблема на одном из наших рабочих серверов (сервер Windows 2003). Похоже, что все пулы приложений перезагружаются каждые 10 секунд или около того (все одновременно). Разумеется, это негативно сказывается на производительности приложений.
Симптомы:
- потеряны кеши приложений
- срабатывают операторы отладки в коде запуска приложения
- фоновые потоки остановлены
Еще я обнаружил:
- удивительно, что процессы w3wp.exe остаются стабильными
- на этой машине не работает антивирус
- попытался отключить уведомление об изменении файла, добавив <httpRuntime waitChangeNotification="1000000" />
и <compilation numRecompilesBeforeAppRestart="100000" />
в одно из приложений, но это не помогло
- ничего подозрительного в Event Viewer
Не знаю, что еще здесь попробовать.
Вам необходимо включить ведение журнала мониторинга работоспособности IIS. Причина перезапуска записывается в журнал событий приложений. Вы не должны отключать уведомление об изменении файла, потому что на веб-сайте вообще не должно происходить никаких изменений. Любые файлы / данные, которые создаются / изменяются / удаляются, должны находиться вне структуры папок веб-сайта.
Теперь это встроено в графический интерфейс пула приложений в IIS 7. Чтобы включить это в IIS 6, вы можете добавить соответствующую информацию в файл web.config. В частности, вы хотите регистрировать «События времени жизни приложения».
<system.web>
<healthMonitoring enabled="true" heartbeatInterval="1">
<rules>
<add name="HeartBeat" eventName="Heartbeats" provider="EventLogProvider" profile="Default" minInstances="1" minInterval="00:01:00" maxLimit="Infinite"/>
<add name="App Lifetime" eventName="Application Lifetime Events" provider="EventLogProvider" profile="Default" minInstances="1" minInterval="00:00:00" maxLimit="Infinite"/>
</rules>
</healthMonitoring>
<system.web>
Использование событий мониторинга работоспособности
http://msdn.microsoft.com/en-us/library/ms228103.aspx
Есть ли у вас необходимые разрешения, чтобы на какое-то время запретить доступ для записи в папку bin? Если вы это сделаете, то, если что-то записывается в папку, может появиться ошибка, и вы сможете отследить ее оттуда.
В худшем случае, если ошибок нет, то, по крайней мере, ваш пул приложений не будет переработан, потому что папка bin не будет изменяться.
Другая альтернатива - использовать Монитор процесса от Microsoft и просмотрите папку, чтобы увидеть, что происходит с доступом. Это покажет вам файлы, которые читаются / записываются, и все процессы, которые обращаются к ним.