明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
随笔 - 1277, 文章 - 0, 评论 - 214, 阅读 - 320万
  博客园  :: 首页  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
复制代码
 1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading;
  6 using System.IO;
  7 using Microsoft.Web.Administration;
  8 
  9 
 10 namespace RecoveryWebSite
 11 {
 12     class Program
 13     {
 14         const string AppPoolName = "POD";
 15         const string WebSiteName = "POD";
 16         const int SleepTime = 1000 * 60;
 17 
 18         static void Main(string[] args)
 19         {
 20 
 21             Thread tAppPool = new Thread(() => RecoveryAppPool());
 22             tAppPool.IsBackground = true;
 23             tAppPool.Start();
 24 
 25             Thread tWebSite = new Thread(() => RecoveryWebSite());
 26             tWebSite.IsBackground = true;
 27             tWebSite.Start();
 28 
 29             //防止程序退出
 30             while (true)
 31             {
 32                 Thread.Sleep(SleepTime);
 33             }
 34         }
 35 
 36         static void RecoveryAppPool()
 37         {
 38             while (true)
 39             {
 40                 var sm = new ServerManager();
 41                 var pool = sm.ApplicationPools[AppPoolName];
 42                 if (pool != null && pool.State == ObjectState.Stopped)
 43                 {
 44                     WriteLog("检测到应用池" + AppPoolName + "停止服务");
 45                     WriteLog("正在启动应用池" + AppPoolName);
 46                     if (pool.Start() == ObjectState.Started)
 47                     {
 48                         WriteLog("成功启动应用池" + AppPoolName);
 49                     }
 50                     else
 51                     {
 52                         WriteLog("启动应用池" + AppPoolName + "失败. " + SleepTime / 60 + "秒后重试启动");
 53                     }
 54                 }
 55                 sm.Dispose();
 56                 sm = null;
 57                 Thread.Sleep(SleepTime);
 58             }
 59         }
 60 
 61         static void RecoveryWebSite()
 62         {
 63             while (true)
 64             {
 65                 var sm = new ServerManager();
 66                 var site = sm.Sites[WebSiteName];
 67                 if (site != null && site.State == ObjectState.Stopped)
 68                 {
 69                     WriteLog("检测到网站" + WebSiteName + "停止服务");
 70                     WriteLog("正在启动网站" + WebSiteName);
 71                     if (site.Start() == ObjectState.Started)
 72                     {
 73                         WriteLog("成功启动网站" + WebSiteName);
 74                     }
 75                     else
 76                     {
 77                         WriteLog("启动网站" + WebSiteName + "失败. " + SleepTime / 60 + "秒后重试启动");
 78                     }
 79                 }
 80                 sm.Dispose();
 81                 sm = null;
 82                 Thread.Sleep(SleepTime);
 83             }
 84         }
 85 
 86         static void WriteLog(string msg)
 87         {
 88             var fPath = "c:\\RecoveryWebsiteLog.txt";
 89             if (!File.Exists(fPath))
 90             {
 91                 File.Create(fPath).Close();
 92             }
 93 
 94             using (StreamWriter sw = new StreamWriter(fPath, true, Encoding.UTF8))
 95             {
 96                 sw.WriteLine(string.Format("{0} , 时间{1}", msg, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")));
 97             }
 98         }
 99     }
100 }
复制代码

 

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示