Время от времени пулы приложений служб IIS можно перезапускать во избежание нестабильных состояний, которые могут привести к сбою приложений, зависанию или утечкам памяти. По умолчанию перезапуск пулов приложений выполняется с перекрытием, то есть закрывающийся рабочий процесс работает до тех пор, пока не будет запущен новый рабочий процесс. После запуска нового рабочего процесса новые запросы передаются ему. Предыдущий рабочий процесс закрывается после того, как завершит обработку своих текущих запросов, либо после завершения настроенного срока ожидания, в зависимости от того, что будет достигнуто раньше. Такой способ перезапуска обеспечивает непрерывную работу службы для клиентов. Однако, если для приложения в пуле приложений разрешен запуск только одного его экземпляра одновременно, смена с перекрытием может не работать.
Остановка и запуск WAS
Если службе WAS не удастся перезапустить пул приложений, проблема может быть решена автоматически. Если проблема не исчезает, возможно следует остановить и перезапустить WAS. Остановка службы WAS также приведет к остановке службы веб-публикаций (W3SVC) и все других служб, зависящих от WAS. Таким образом, также может потребоваться запустить эти другие службы.
Остановка и запуск WAS
Откройте окно командной строки с повышенными правами. Нажмите кнопку Пуск, наведите указатель на пункт Все программы, выберите пункт Стандартные, щелкните правой кнопкой мыши пункт Командная строка и выберите Запуск от имени администратора.
В командной строке введите net stop was /y.
В командной строке введите net start was.
Чтобы перезапустить службу W3SVC, введите в командной строке net start w3svc. Также запустите все остальные службы, остановленные при остановке WAS.
Target | Microsoft.Windows.InternetInformationServices.10.0.ApplicationPool |
Category | Alert |
Enabled | True |
Alert Generate | False |
Remotable | True |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.Server.IIS.10.0.WarningAndErrorEventProvider | Default |
Filter | ConditionDetection | Microsoft.Windows.InternetInformationServices.10.0.ApplicationPool.EventFilter | Default |
WA | WriteAction | Microsoft.Windows.Server.IIS.10.0.GenerateAlertAction.SuppressedByDescription | Default |
<Rule ID="Microsoft.Windows.InternetInformationServices.10.0.WAS.failed.to.issue.recycle.request.to.application.pool" Enabled="true" Target="Microsoft.Windows.InternetInformationServices.10.0.ApplicationPool" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>Alert</Category>
<DataSources>
<DataSource ID="DS" TypeID="Microsoft.Windows.Server.IIS.10.0.WarningAndErrorEventProvider">
<LogName>System</LogName>
</DataSource>
</DataSources>
<ConditionDetection ID="Filter" TypeID="Microsoft.Windows.InternetInformationServices.10.0.ApplicationPool.EventFilter">
<Expression>
<And>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^(5070|5093)$</Pattern>
</RegExExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-WAS</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</ConditionDetection>
<WriteActions>
<WriteAction ID="WA" TypeID="Microsoft.Windows.Server.IIS.10.0.GenerateAlertAction.SuppressedByDescription">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.InternetInformationServices.10.0.WAS.failed.to.issue.recycle.request.to.application.pool.AlertMessage"]$</AlertMessageId>
</WriteAction>
</WriteActions>
</Rule>