У меня есть веб-сервис на одном из моих сайтов, который перезапускает пул приложений для сайтов.
Проблема, которую я получаю, заключается в том, что пул приложений IIS7 останавливается со следующим предупреждением, а затем с ошибкой:
Внимание:
Процесс, обслуживающий пул приложений appPoolNameHere, превысил временные ограничения при завершении работы.
Ошибка:
Пул приложений appPoolNameHere автоматически отключается из-за серии сбоев в процессе (ах), обслуживающем этот пул приложений.
Код, который я использую для этого:
try
{
var serverManager = new ServerManager();
var currentPoolName = SettingsManager.AppPoolName;
if (!string.IsNullOrEmpty(currentPoolName))
serverManager.ApplicationPools[currentPoolName].Recycle();
HttpRuntime.Close();
}
catch (Exception ex)
{
var exceptionManager = ExceptionManagerFactory.GetExceptionManager();
exceptionManager.LogException(ExceptionManager.Severities.Critical, ex,
"App Pool restart failed");
}
Я не получаю никаких исключений здесь, но пул приложений останавливается, это не происходит постоянно и его очень трудно воспроизвести, я пробовал несколько разных вещей, даже просто чертовски из этого сервиса и иногда в другие времена это прекрасно.
Что я могу сделать, чтобы это исправить?
Причина, по которой я должен перезапустить его, связана с внешним файлом конфигурации для webconfig, который имеет дело с перенаправлениями url, которые обновляются из системы администратора.
Спасибо за любую помощь в этом.