Как правильно и программно перерабатывать пул приложений на сервере IIS

Это то, чем я сейчас занимаюсь

public static string RecycleSite(string siteName)
{
    try
    {
        using (ServerManager iisManager = new ServerManager())
        {
            SiteCollection sites = iisManager.Sites;
            foreach (Site site in sites)
            {
                if (site.Name == siteName)
                {
                    ObjectState os = iisManager.ApplicationPools[site.Applications["/"].ApplicationPoolName].Recycle();
                    return "Recycle Successful";
                }
            }
        }
        return "Recycle Unsuccessful";
    }
    catch(Exception ex)
    {
        return "Recycle Unsuccessful: " + ex;
    }

Я просмотрел несколько других тем, но, похоже, ни одна из них не нашла ответа. Я хочу использовать класс диспетчера сервера для переработки определенного сайта IIS. Это текущее решение "перерабатывает", но оно также убивает все активные соединения, которые все еще присутствуют. Диспетчер IIS настроен так, что я могу начать новый экземпляр, пока в текущем экземпляре сохраняются соединения, пока эти соединения не закрылись сами по себе.

Правильно ли выбрано мое решение или мне нужно перейти на переработку более прямым способом? Это часть консольного приложения, которое настроено на запуск от имени администратора, поэтому моя другая служба, которая вызывает, может находиться под учетной записью пользователя (по соображениям безопасности). Использование IIS 8.5 на Server 2012 R2.

0 ответов

Другие вопросы по тегам