
У меня есть сервер Windows 2008 R2 Service Pack 1. Он виртуальный, но это не должно иметь никакого значения. Его единственное предназначение в жизни — запуск IIS 7, и он с этим справляется довольно хорошо. Однако, когда я перехожу к монитору производительности, там нет выбора ASP.NET или приложений ASP.NET. Есть выбор APP_POOL_WAS, в котором есть экземпляры пулов приложений, которые мне интересны, но счетчики не очень интересны. Есть также куча других вариантов счетчиков производительности. Веб-сайты используют 2 пула приложений, каждый из которых использует v4.0 фреймворка .NET. Если я загляну в диспетчер задач, я увижу два запущенных w3wp.exe, каждый из которых является рабочим процессом IIS. У меня был включен UAC, но я его отключил. Я добавил appDomainResourceMontoring в файл aspnet.config, но это не помогло. Вот файл aspnet.config, если это хоть немного поможет.
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<runtime>
<legacyUnhandledExceptionPolicy enabled="false" />
<legacyImpersonationPolicy enabled="true"/>
<alwaysFlowImpersonationPolicy enabled="false"/>
<SymbolReadingPolicy enabled="1" />
<shadowCopyVerifyByTimestamp enabled="true"/>
<appDomainResourceMonitoring enabled="true"/>
</runtime>
<startup useLegacyV2RuntimeActivationPolicy="true" />
</configuration>
решение1
Что именно вы хотите отслеживать или контролировать?
Как вы видели, вам необходимо отслеживать пул приложений и экземпляры внутри него, поскольку это фактические потоки на сервере, скрывающиеся под видом процесса w3wp.exe.
Кроме того, вы можете проверить поставщика ASP.NET Health Monitoring. Он, безусловно, имеет наибольшее количество статистики и информации, связанной с фактически запущенным приложением. Проверьте документы Microsoftздесьдля получения дополнительной информации. Если я правильно помню, вы можете регистрировать их напрямую в журнале событий или в базе данных. База данных — это хороший вариант просто потому, что может быть вызвано огромное количество событий в зависимости от вашей конфигурации.