C#重启IIS指定网站和指定应用程序池

摘要:
2使用Microsoft.Web.Administration;8使用System.Linq;10usingSystem.Threading;=空&72Thread.Sleep(睡眠时间);
 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 }

免责声明:文章转载自《C#重启IIS指定网站和指定应用程序池》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇drf之框架基础MongoDB学习笔记(一) MongoDB介绍及安装下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C++库大全

基础类 1、 Dinkumware C++ Library 参考站点:http://www.dinkumware.com P.J. Plauger编写的高品质的标准库。P.J. Plauger博士是Dr. Dobb's程序设计杰出奖的获得者。其编写的库长期被Microsoft采用,并且最近Borland也取得了其OEM的license,在其C/C+ +的产品...

macOS 系统下node安装和环境配置(通过node官网)

为了解决node的一些问题, 需要重装 node, 此时: Solved it by uninstalling Node completely and installing it via the website (not via terminal) 通过nodejs网站下载安装包来安装node,而不是通过终端。 1、前往node官网下载 node安装包  ...

【IIS】设置URL重定向

名字解释:   URL转发分为隐含转发和非隐含转发,隐含转发就是指当前域名转发后,仍然显示当前域名,而非隐含转发者指当前域名转发后,显示被转发的地址。 前提:   你有一个A网站:地址是:192.168.1.223:8700                       B网站:地址是 www.baidu.com 现在要在输入A网站地址后,直接跳转到B网站中...

网络数据加密需要解决三个问题:

完整:数据不被篡改; 安全:数据不被截获,或者截获也无法得到明文; 可靠:数据从真正的发送方而来,其他人无法伪造一个数据来欺骗接受方;下面例子只解决了安全这个问题:   非对称算法使用的两个密钥有如下关系:使用公共密钥加密的信息只能被相应的私有密钥解密。因此,我首要求你给我发送你的公共密钥。在发送给我的途中可能有人会截取它,但是没有关系,因为他们只能使用该...

28个在线学习网站让你变身齐天大圣!

  无论是考虑换工作成为一个全职的程序猿,还是试图搭建一个网站,亦或是想要掌握更多的技能,总之现在越来越多的人都开始学习如何编程。虽然编程不一定适合所有人,但是对相关的知识多深入了解一下总归是有一些好处的。   在正式介绍这些学习网站给大家之前,我想和大家分享一些来自Marissa Louie的忠告。Marissa Louie是Ness Computing的...

【华为云技术分享】云小课 | WAF反爬虫“三板斧”:轻松应对网站恶意爬虫

反爬虫是一个复杂的过程,针对爬虫常见的行为特征,WAF反爬虫三板斧——Robot检测(识别User-Agent)、网站反爬虫(检查浏览器合法性)和CC攻击防护(限制访问频率)可以全方位帮您解决业务网站遭受的爬虫问题,协助您打赢与爬虫的持久战!华为云Web应用防火墙(Web Application Firewall,WAF)通过对HTTP(S)请求进行检测,...