zoukankan      html  css  js  c++  java
  • C#重启IIS指定网站和指定应用程序池

     1 using Jinher.AMP.BTP.Deploy;
     2 using Microsoft.Web.Administration;
     3 using Redis.Helper;
     4 using System;
     5 using System.Collections.Generic;
     6 using System.Configuration;
     7 using System.IO;
     8 using System.Linq;
     9 using System.Text;
    10 using System.Threading;
    11 using System.Threading.Tasks;
    12 
    13 namespace Redis
    14 {
    15 
    16     public class Program
    17     {
    18         static readonly string AppPoolName = ConfigurationManager.AppSettings["ApplicationPoolName"].ToString();
    19         static readonly string WebSiteName = ConfigurationManager.AppSettings["WebSiteName"].ToString();
    20         static readonly int SleepTime = int.Parse(ConfigurationManager.AppSettings["SleepTime"].ToString());
    21         static ServerManager sm;
    22 
    23         static void Main(string[] args)
    24         {
    25             Console.WriteLine($"检测程序启动,【{WebSiteName}】当网站或其应用池停下后,会自动启动。");
    26             sm = new ServerManager();
    27             new Thread(RecoveryWebSite).Start();
    28         }
    29 
    30         static void RecoveryWebSite()
    31         {
    32             while (true)
    33             {
    34                 try
    35                 {
    36                     var pool = sm.ApplicationPools[AppPoolName];
    37                     if (pool != null && pool.State == ObjectState.Stopped)
    38                     {
    39                         Console.WriteLine("检测到应用池" + AppPoolName + "停止服务");
    40                         Console.WriteLine("正在启动应用池" + AppPoolName);
    41                         if (pool.Start() == ObjectState.Started)
    42                         {
    43                             Console.WriteLine("成功启动应用池" + AppPoolName);
    44                         }
    45                         else
    46                         {
    47                             Console.WriteLine("启动应用池" + AppPoolName + "失败. " + SleepTime / 60 + "秒后重试启动");
    48                         }
    49                     }
    50 
    51                     var site = sm.Sites[WebSiteName];
    52                     if (site != null && site.State == ObjectState.Stopped)
    53                     {
    54                         Console.WriteLine("检测到网站" + WebSiteName + "停止服务");
    55                         Console.WriteLine("正在启动网站" + WebSiteName);
    56                         if (site.Start() == ObjectState.Started)
    57                         {
    58                             Console.WriteLine("成功启动网站" + WebSiteName);
    59                         }
    60                         else
    61                         {
    62                             Console.WriteLine("启动网站" + WebSiteName + "失败. " + SleepTime / 60 + "秒后重试启动");
    63                         }
    64                     }
    65                 }
    66                 catch (Exception ex)
    67                 {
    68                     Console.WriteLine(ex.Message.ToString());
    69                 }
    70 
    71                 GC.Collect();
    72                 Thread.Sleep(SleepTime);
    73             }
    74         }
    75     }
    76 }
  • 相关阅读:
    利用python设计PDF报告,jinja2,whtmltopdf,matplotlib,pandas
    RPC服务不可用总结
    每次打开VS都报错:我们无法自动填充你的 Visual Studio Team Services 帐户
    每天一个linux命令(28):tar命令
    每天一个linux命令(23):Linux 目录结构
    每天一个linux命令(13):less 命令
    jquery对cookie进行读取、写入和删除
    vscode常用快捷键总结
    浏览器报Mixed Content错误的解决
    React.Children的使用
  • 原文地址:https://www.cnblogs.com/happygx/p/9680299.html
Copyright © 2011-2022 走看看