定时重启IIS的网站和应用程序池
vs新建Windows服务:
双击Service打开代码视图:
Logger配置
partial class RecoveryWebSiteService : ServiceBase{private Thread MainThread;static readonly string AppPoolName1 = ConfigurationManager.AppSettings["ApplicationPoolName1"].ToString();static readonly string AppPoolName2 = ConfigurationManager.AppSettings["ApplicationPoolName2"].ToString();static readonly string WebSiteName1 = ConfigurationManager.AppSettings["WebSiteName1"].ToString();static readonly string WebSiteName2 = ConfigurationManager.AppSettings["WebSiteName2"].ToString();static readonly int SleepTime = int.Parse(ConfigurationManager.AppSettings["SleepTime"].ToString());static ServerManager sm = new ServerManager();public RecoveryWebSiteService(){InitializeComponent();}protected override void OnStart(string[] args){// TODO: 在此处添加代码以启动服务。MainThread = new Thread(new ThreadStart(ThreadProc));MainThread.Start();}protected override void OnStop(){// TODO: 在此处添加代码以执行停止服务所需的关闭操作。}private void ThreadProc(){while (true){try{//国庆、中秋等重大节日会手动关闭,不用开启var month = DateTime.Now.Month;var day = DateTime.Now.Day;var dtStr = (month < 10 ? ("0" + month) : month.ToString())+ (day < 10 ? ("0" + day) : day.ToString());var holidayList = HolidayEnum.holiday.ToList();if (!holidayList.Contains(dtStr)){var pool1 = sm.ApplicationPools[AppPoolName1];var pool2 = sm.ApplicationPools[AppPoolName2];var site1 = sm.Sites[WebSiteName1];var site2 = sm.Sites[WebSiteName2];StartPool(AppPoolName1, pool1, site1);StartPool(AppPoolName2, pool2, site2);StartWebSite(WebSiteName1, site1);StartWebSite(WebSiteName2, site2);//每天凌晨两点定时重启应用池和网站if (DateTime.Now.Hour == 2){Logger.Write(typeof(RecoveryWebSiteService), "定时重启应用池和网站");pool1.Start();site1.Start();pool2.Start();site2.Start();}}}catch (Exception ex){Logger.Write(typeof(RecoveryWebSiteService), ex);}GC.Collect();Thread.Sleep(SleepTime);}}private void StartPool(string poolName, ApplicationPool pool, Site site){if (pool != null && pool.State == ObjectState.Stopped){Logger.Write(typeof(RecoveryWebSiteService), "检测到应用池" + poolName + "停止服务");Logger.Write(typeof(RecoveryWebSiteService), "正在启动应用池" + poolName);if (pool.Start() == ObjectState.Started){Logger.Write(typeof(RecoveryWebSiteService), "成功启动应用池" + poolName);site.Start();}else{Logger.Write(typeof(RecoveryWebSiteService), "启动应用池" + poolName + "失败。" + SleepTime + "分钟后重试启动");}}}private void StartWebSite(string siteName, Site site){if (site != null && site.State == ObjectState.Stopped){Logger.Write(typeof(RecoveryWebSiteService), "检测到网站" + siteName + "停止服务");Logger.Write(typeof(RecoveryWebSiteService), "正在启动网站" + siteName);if (site.Start() == ObjectState.Started){Logger.Write(typeof(RecoveryWebSiteService), "成功启动网站" + siteName);}else{Logger.Write(typeof(RecoveryWebSiteService), "启动网站" + siteName + "失败。 " + SleepTime + "分钟后重试启动");}}}}
定时重启IIS的网站和应用程序池相关推荐
- Windows使用任务计划执行批处理定时重启IIS部署的网站
1. 为什么要重启IIS部署的网站 有个小需求,需要定时重启IIS部署的网站(我能想到的只是这样),这与海康设备网络SDK的实时预览数据捕获有关系,webservice中定义了三个接口,抓拍.开始录像 ...
- 【实战】Windows使用任务计划执行批处理定时重启IIS部署的网站
文章目录 一.windows定时任务 1.Windows 任务计划程序 2.Windows Service 二.命令行方式启停IIS网站 三.例:定时启停IIS网站 目标任务 步骤 查看成果 一.wi ...
- 重启iis与mysql服务器吗_每晚定时重启IIS和数据库服务可节省服务器资源
在WEB开发中经常需要重启IIS,每次打开IIS来操作很麻烦,在桌面新增了一个bat文件,内容如下 iisreset /*重新启动IIS服务*/ net stop sqlserveragent ...
- 每晚定时重启IIS和数据库服务可节省服务器资源
在WEB开发中经常需要重启IIS,每次打开IIS来操作很麻烦,在桌面新增了一个bat文件,内容如下 iisreset /*重新启动IIS服务*/ net stop sqlserveragent ...
- C# 重启IIS指定网站和指定应用程序池
//应用程序池static readonly string AppPoolName = ConfigurationManager.AppSettings["ApplicationPoolNa ...
- Windows服务器设置IIS定时重启的方法,带图详解
我们在使用Windows2008下IIS服务器时会经常出现资源耗尽的现象,运行一段时间下来就会出现访问服务器上的网站时提示数据库连接出错,重启IIS后网站又能正常访问了,这个问题可能困扰了很多站长朋友 ...
- 解决:IIS 假死,运行一段时间服务器上所有网站打不开,必须要重启服务器才行,重启IIS都没用。怎么解决,解决方案
tip:我服务器问题是 每个5-6天后,服务器上的所有网站都不能访问,重启IIS无用,必须重启服务器! 后,请教周华伟周经理后,找到解决方案如下: 第一原因: 这是程序池造成的,网站运行时,造成服务器 ...
- iis用命令行重启其中一个网站
我们有很多种办法,可以重新启动IIS的网站.服务,但都是同时重启所有网站和服务 在做Jenkins自动化部署时,我们有一个需求,需要单独停止.启动指定的网站,同IIS下的其他网站,不能受到影响,那么应 ...
- 怎么打云开服务器iis_云服务器怎么重启iis
Net 命令操作 1.在计算机中点击"开始"-"运行",输入cmd 打开命令窗口: 2.输入 net stop iisadmin /y 回车停止IIS:再输入 ...
最新文章
- Amazon AWS云计算服务简介
- Qt Creator查找和更换
- [链接]开方检验原理
- 2022有哪些不容错过的后端技术趋势
- Java实现首字母大写、驼峰命名与、划线转换,校验null
- 小小数据统计(柱状图、折线图、扇形图)
- python读取文件名有中文_[请教]python的中文文件名处理
- jdbc 链接不了mysql_JDBC链接Mysql失败
- 电池pack结构_锂电池pack性能测试标准,电池测试模组就选弹片微针模组
- WEB版的即时聊天工具
- 迷你世界显示服务器错误,迷你世界登陆失败怎么办-迷你世界登陆未成功_牛游戏页游...
- TZC Python编程入门教程 ————题解
- 如何从零基础入门并精通PS?PS如何快速入门?
- 2017华为实习生招聘机考模拟题——0交换排序
- LS1021ATWR开发板启动日志分析
- 庆祝JavaCard技术领导SmartCard技术超过五年
- CF1622E Math Test(技巧)
- 强烈推荐!CSDN浏览器助手,让你的浏览器上10个档次!
- 微信小程序background-image设置(文末还有wxss的万能模板)
- 微博视频处理系统的云原生之路