首页 / C# / C#重启IIS指定网站和指定应用程序池
C#重启IIS指定网站和指定应用程序池
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#重启IIS指定网站和指定应用程序池,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2352字,纯文字阅读大概需要4分钟。
内容图文
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"; 15conststring WebSiteName = "POD"; 16constint SleepTime = 1000 * 60; 17 18staticvoid 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//防止程序退出 30while (true) 31 { 32 Thread.Sleep(SleepTime); 33 } 34 } 35 36staticvoid RecoveryAppPool() 37 { 38while (true) 39 { 40var sm = new ServerManager(); 41var pool = sm.ApplicationPools[AppPoolName]; 42if (pool != null && pool.State == ObjectState.Stopped) 43 { 44 WriteLog("检测到应用池" + AppPoolName + "停止服务"); 45 WriteLog("正在启动应用池" + AppPoolName); 46if (pool.Start() == ObjectState.Started) 47 { 48 WriteLog("成功启动应用池" + AppPoolName); 49 } 50else 51 { 52 WriteLog("启动应用池" + AppPoolName + "失败. " + SleepTime / 60 + "秒后重试启动"); 53 } 54 } 55 sm.Dispose(); 56 sm = null; 57 Thread.Sleep(SleepTime); 58 } 59 } 60 61staticvoid RecoveryWebSite() 62 { 63while (true) 64 { 65var sm = new ServerManager(); 66var site = sm.Sites[WebSiteName]; 67if (site != null && site.State == ObjectState.Stopped) 68 { 69 WriteLog("检测到网站" + WebSiteName + "停止服务"); 70 WriteLog("正在启动网站" + WebSiteName); 71if (site.Start() == ObjectState.Started) 72 { 73 WriteLog("成功启动网站" + WebSiteName); 74 } 75else 76 { 77 WriteLog("启动网站" + WebSiteName + "失败. " + SleepTime / 60 + "秒后重试启动"); 78 } 79 } 80 sm.Dispose(); 81 sm = null; 82 Thread.Sleep(SleepTime); 83 } 84 } 85 86staticvoid WriteLog(string msg) 87 { 88var fPath = "c:\\RecoveryWebsiteLog.txt"; 89if (!File.Exists(fPath)) 90 { 91 File.Create(fPath).Close(); 92 } 93 94using (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 }
注意:
Microsoft.Web.Administration 命名空间,可以通过Nuget包管理器找到并添加.
这个启动网站和应用池的功能也可以通过cmd 给 appcmd.exe发送命令,读取cmd执行后的返回值来实现
有待改进的地方:
1,没做成服务.
2,程序运行时间长,内存会有略微的增加,不知道什么原因.
原文:http://www.cnblogs.com/xrcdev/p/theDsir.html
内容总结
以上是互联网集市为您收集整理的C#重启IIS指定网站和指定应用程序池全部内容,希望文章能够帮你解决C#重启IIS指定网站和指定应用程序池所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。