软件定制请联系QQ:240452625

C#监控IIS程序池状态(可以自动重启程序池)

3.png

最近有个项目部署在IIS上,时不时会出现程序池自动停止的情况,程序池一停止就整个项目废了。所以百度了一下,找到一个C#监控IIS程序池的方法,下面大家看代码。


///

/// IIS应用地址池监控方法

///

private void IISAppPools()

{

    try

    {

        string entPath = "IIS://LOCALHOST/W3SVC/AppPools";

        while (true)

        {

            DirectoryEntry rootEntry = new DirectoryEntry(entPath);

            foreach (DirectoryEntry AppPool in rootEntry.Children)

            {

                if (AppPool.Properties["AppPoolState"].Value.ToString() != "2")

                {

                    //AppPool.Name + "应用程序池已停止"


                    //重启程序池

                    AppPool.Invoke("Start", null);

                    AppPool.CommitChanges();

                    

                    //AppPool.Name + "应用程序池已成功启动"

                }

                AppPool.Close();

            }


            //每3分钟监测一次

            Thread.Sleep(1000 * 60 * 3);

        }

    }

    catch (Exception ex)

    {

        

    }

}



//使用独立线程来监测IIS程序池状态

Thread t = new Thread(IISAppPools);

t.Start();


如果报以下异常,请安装IIS 6兼容组件【IIS 元数据库和IIS 6配置兼容性

System.Runtime.InteropServices.COMException (0x80005000): 未知错误(0x80005000)

   在 System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)

   在 System.DirectoryServices.DirectoryEntry.Bind()

   在 System.DirectoryServices.DirectoryEntry.get_IsContainer()

   在 System.DirectoryServices.DirectoryEntries.ChildEnumerator..ctor(DirectoryEntry container)

   在 System.DirectoryServices.DirectoryEntries.GetEnumerator()

1.png


安装成功后,如果还是报错,请使用管理员身份运行程序

2.png

  1. 本网站所收集的部分资料来源于互联网,本站不对其真实性负责,也不构成任何其他建议。如果您发现有侵犯您权益的内容,请与我们取得联系,我们会及时修改或删除。
  2. 传递知识、传递力量,欢迎各位网友对本站的文章进行转载和分享。
  3. 本站QQ群交流群:4411229  群号:4411229
发表评论
 
评论列表(目前共有 条评论)
zhou
大侠,感谢分享,就是不知道怎么把这段代码使用起来,能不能出个详细的步骤
2017-10-15 11:10:42
秋风下的落叶
直接把上面的代码拿去用就可以了啊。。然后把那个启动线程的代码放到按钮或者Load事件里面。
2017-11-03 22:33:07
微软MVP
IIS程序池支持自动重启
2017-12-09 10:12:31
秋风下的落叶
用程序监控方便。保险一点
2017-12-12 08:37:04

文章搜索

商家广告


版权所有:秋风雅居 (www.28ab.cn) ©2013-2019 All Rights Reserved.

粤ICP备19021598号-3