1.  
  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. namespace RecoveryWebSite
  10. {
  11. public class Program
  12. {
  13. const string AppPoolName = "POD";
  14. const string WebSiteName = "POD";
  15. const int SleepTime = * ;
  16. static ServerManager sm;
  17.  
  18. static void Main(string[] args)
  19. {
  20. Console.WriteLine("检测程序启动,当POD网站或其应用池停下后,会自动启动。");
  21. sm = new ServerManager();
  22. new Thread(RecoveryWebSite).Start();
  23. }
  24.  
  25. static void RecoveryWebSite()
  26. {
  27. while (true)
  28. {
  29. try
  30. {
  31. var pool = sm.ApplicationPools[AppPoolName];
  32. if (pool != null && pool.State == ObjectState.Stopped)
  33. {
  34. WriteLog("检测到应用池" + AppPoolName + "停止服务");
  35. WriteLog("正在启动应用池" + AppPoolName);
  36. if (pool.Start() == ObjectState.Started)
  37. {
  38. WriteLog("成功启动应用池" + AppPoolName);
  39. }
  40. else
  41. {
  42. WriteLog("启动应用池" + AppPoolName + "失败. " + SleepTime / + "秒后重试启动");
  43. }
  44. }
  45.  
  46. var site = sm.Sites[WebSiteName];
  47. if (site != null && site.State == ObjectState.Stopped)
  48. {
  49. WriteLog("检测到网站" + WebSiteName + "停止服务");
  50. WriteLog("正在启动网站" + WebSiteName);
  51. if (site.Start() == ObjectState.Started)
  52. {
  53. WriteLog("成功启动网站" + WebSiteName);
  54. }
  55. else
  56. {
  57. WriteLog("启动网站" + WebSiteName + "失败. " + SleepTime / + "秒后重试启动");
  58. }
  59. }
  60. }
  61. catch (Exception ex)
  62. {
  63. WriteLog(ex.Message.ToString());
  64. }
  65.  
  66. GC.Collect();
  67. Thread.Sleep(SleepTime);
  68. }
  69. }
  70.  
  71. static void WriteLog(string msg)
  72. {
  73. var fPath = "c:\\RecoveryWebsiteLog.txt";
  74. if (!File.Exists(fPath))
  75. {
  76. File.Create(fPath).Close();
  77. }
  78.  
  79. using (StreamWriter sw = new StreamWriter(fPath, true, Encoding.UTF8))
  80. {
  81. sw.WriteLine(string.Format("{0} , 时间{1}", msg, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")));
  82. }
  83. //GC.Collect();
  84. }
  85. }
  86. }
  1.  
  1.  
  1. Microsoft.Web.Administration命名空间,可以用nuget添加 .

C#重启IIS指定网站和指定应用程序池的更多相关文章

  1. 不重启IIS修改dotnet framework版本

    因为公司现在存在.net站点和asp站点共同运行的情况,所以需要对IIS进行一些修改,运行环境Win2003+IIS6 一.起因 原来的老站是asp开发的,用的是.net 2.0运行环境; 新站是.n ...

  2. Python Locust对指定网站“一键压测”

    [本文出自天外归云的博客园] 前篇 前篇:Python Locust性能测试框架实践 本篇 承上——归纳过程 在前篇的基础上,我们可以利用Locust性能测试框架编写python脚本对指定网站或者接口 ...

  3. Qt 打开指定网站/系统文件夹

     本文转载自:http://blog.csdn.net/robertkun/article/details/7802977和http://hi.baidu.com/xyhouse/item/ccf ...

  4. 吴裕雄--天生自然python学习笔记:编写网络爬虫代码获取指定网站的图片

    我们经常会在网上搜索井下载图片,然而一张一张地下载就太麻烦了,本案例 就是通过网络爬虫技术, 一次性下载该网站所有的图片并保存 . 网站图片下载并保存 将指定网站的 .jpg 和 .png 格式的图片 ...

  5. 解决ASP.NET使用IIS架设网站时“服务器应用程序不可用”的方法

    服务器应用程序不可用您试图在此 Web 服务器上访问的 Web 应用程序当前不可用.请点击 Web 浏览器中的“刷新”按钮重试您的请求. 管理员注意事项: 详述此特定请求失败原因的错误消息可在 Web ...

  6. 批处理命令行CMD启动停止重启IIS的命令

    原文:批处理命令行CMD启动停止重启IIS的命令 启动IIS: net start iisadmin    (IIS的整个服务) net start w3svc       (WWW网页WEB服务) ...

  7. IIS发布网站

    IIS发布网站几个问题 1.部署步骤:http://jingyan.baidu.com/article/3065b3b6e5becdbecff8a4d5.html Win7下IIS报503Servic ...

  8. IIS管理网站浏览

    7.“/”应用程序中的服务器错误. 分析器错误 说明: 在分析向此请求提供服务所需资源时出错.请检查下列特定分析错误详细信息并适当地修改源文件.分析器错误消息: 文件“/Default.aspx.cs ...

  9. 301跳转:IIS服务器网站整站301永久重定向设置方法(阿里云)

    欢迎来到重庆SEO俱乐部:搜索引擎优化学习交流QQ群224306761. 承接:seo优化.网站建设.论坛搭建.博客制作.全网营销 博主可接:百度百家.今日头条.一点资讯等软文发布,有需要请联系PE! ...

随机推荐

  1. python-virtualenv(多个独立开发环境)

    1. 安装virtualenv$ sudo yum install python-virtualenv 2. 创建开发环境$ virtualenv env_name 3. 启用开发环境$ cd env ...

  2. js中$(function())

    $(document).ready() 里的代码是在页面内容都加载完才执行的 $(document).ready(function(){})可以简写成$(function(){});

  3. Python Day11

    RabbitMQ队列 RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列 ...

  4. nginx之location匹配优先级和安全问题

    最近一直在做location的配置,遇到优先级别问题(如有配置不当,会存在安全隐患),以下是个人的一些学习体会 一.location 匹配符 1.等于匹配符:      ##"=" ...

  5. linux 查看文件大小

    ls -lht

  6. ORA-00600: 内部错误代码

    运行时报ORA-00600: 内部错误代码, 参数:[qcsgpvc3],[],[],[],[],[],[],[],[],[],[],[]    ,上网搜了但大多数都不行.无心插柳柳成荫,就在无奈想要 ...

  7. easyui如何动态改变列的编辑属性

    动态改变列的编辑属性 var tt=$('#dg').datagrid('getColumnOption', 'yearContent'); //通过列名获得此列 tt.editor={type:'t ...

  8. Apache服务器安装过程及问题的解决(for windows system32bit)

    在使用Hbuilder设计网站时,在制作本站搜索时,用到了Php文件,而Hbuilder的内置web服务器不支持php的解析, 所以需要安装配置外部服务器,有多个选择,我安装的apache服务器,并遇 ...

  9. c语言经典算法—求0—7 所能组成的奇数个数

    题目:求0—7 所能组成的奇数个数. 算法思想:这个问题其实是一个排列组合的问题,设这个数为sun=a1a2a3a4a5a6a7a8,a1-a8表示这个数的某位的数值,当一个数的最后一位为奇数时,那么 ...

  10. Unix网络单词汇总

    Chrome开发者工具 Elements(元素).Network(网络).Sources(源代码:调试JS的地方).Timeline(时间线).Profiles(性能分析).Resources(资源: ...