最近网站总是报"Timer_Connection"错误,导致该网站所使用的应用程序池由于错误过多停止运行,网站也就出现了service unvaliable,无法访问,在网上查了很多资料,结果很让人无奈,这个问题已经困扰我了很久,一直没有得到解决,后来同事发来一篇文章让我有了新的解决方法,虽然不能根本解决这个报错,但可以快速清空并恢复指定的应用程序池

不多说了,看看下面这个方法吧,主要是创建一个连接(如你要监控的网站的一个地址),如果能访问到这个页面说明网站应用程序池没有问题,如果不能访问,也就是会报错喽,这时我们就可以调用下面的方法,去清空并重启该应用程序池,代码如下:

public void RestartAppPool()
        {
            System.Net.HttpWebRequest request = (HttpWebRequest)WebRequest.Create(System.Configuration.ConfigurationSettings.AppSettings["webfile"].ToString());
            request.KeepAlive = false;
            try
            {
                System.Net.HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                response.Close();
            }
            catch
            {
                DirectoryEntry root = new DirectoryEntry("IIS://localhost/W3SVC/AppPools/" + System.Configuration.ConfigurationSettings.AppSettings["AppPoolName"].ToString());
                root.Invoke("Start", null);
                root.CommitChanges();
                AddEventLog("重启应用程序池于:"+DateTime.Now.ToLongTimeString());
                root.Close();
            }
        }

这里有一点需要注意,DirectoryEntry需要引用C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.DirectoryServices.dll

另外还要Using System.Net

而我则是创建了一个windows service来定时去检查应用程序池的状态.

另外,大家在创建windows service的时候可不要忘记在安装进程控件(serviceProcessInstaller1)属性中将Account设置为Local System,否则在您安装这个服务时会提示您输入用户名及密码,如下图

这时您需要在安装服务之前创建一个windows账户,并且需要在策略中"作为服务登录"添加您之前创建的用户,当然这样做实在很麻烦,为了不在安装中出现这个问题,一定要将Account设置为Local System,本人之前就遇见了这个问题,最后不得不在网上又搜了一圈才明白到底是怎么回事,希望您在遇到这个问题是对您有所帮助哦.

转载于:https://www.cnblogs.com/dongpo888/archive/2009/01/13/1375212.html

创建windows服务,定时监控网站应用程序池相关推荐

  1. 杂记2:VS2013创建Windows服务实现自动发送邮件

    这篇随笔里,我将介绍如何用VS2013开发Windows服务项目,实现的功能是定时发送电子邮件. 开发环境:VS2013,SQL Server2008,采用C#语言开发 步骤一:创建Windows服务 ...

  2. 用.NET创建Windows服务

    用.NET创建Windows服务 译者说明:我是通过翻译来学习C#的,文中涉及到的有Visual Studio.NET有关操作,我都根据中文版的VS.NET显示信息来处理的,可以让大家不致有误解. 作 ...

  3. 用C#创建Windows服务(Windows Services)

    转载自 hyslove 最终编辑 hyslove Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称.用Visual C# 创建Windows服务不是 ...

  4. C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案

    C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案 参考文章: (1)C#/.NET基于Topshelf创建Windows ...

  5. (转)创建Windows服务(Windows Services)N种方式总结

    转自:http://www.cnblogs.com/aierong/archive/2012/05/28/2521409.html 最近由于工作需要,写了一些windows服务程序,有一些经验,我现在 ...

  6. *用C#创建Windows服务(Windows Services)

    Windows服务在Visual Studio 以前的版本中叫NT服务,在VS.net启用了新的名称.用Visual C# 创建Windows服务不是一件困难的事,本文就将指导你一步一步创建一个Win ...

  7. 在64位windows下使用instsrv.exe和srvany.exe创建windows服务

    在64位windows下使用instsrv.exe和srvany.exe创建windows服务 在32位的windows下,包括windows7,windows xp以及windows 2003,都可 ...

  8. C# — 创建Windows服务

    以前从来没有接触过C#,对Windows服务也完全不了解,今天通过使用VS2017创建了一个Windows服务,并进行了安装和卸载,目前也是一知半解的地步,简单的做个笔记记录一下,也算是复习了吧. 第 ...

  9. python windows服务_Python创建Windows服务

    首先让我们开始安装Python for Windows扩展: c:test>pip install pywin32 完成后,让我们编写该基类,您的Windows服务将是该基类的子类. ''' S ...

最新文章

  1. 关于零拷贝的一点认识
  2. 第4章 利用三层交换机实现VLAN间路由lan配置
  3. 002 辅助框架的设计
  4. Problem G: 部分复制字符串
  5. usnews 计算机专业排名,2019美国大学USNews计算机专业排名
  6. TCP/IP协议族 详解(TCP/IP四层模型、OSI七层模型)
  7. dqn在训练过程中loss越来越大_深度强化学习——从DQN到DDPG
  8. smarty变量调节器--cat[连接字符串]
  9. 注册测绘师划出后的分析与思考
  10. 珍大户《认知世界的经济学》学习笔记,更新时间 2021年01月30日22:34:35
  11. 12f的接线 esp8266_ESP8266固件升级方法(ESP8266-12F模组)
  12. python乱码怎么解决方法_python中文乱码的解决方法
  13. 按头安利 好看又实用的手绘图标素材看这里
  14. 从BlueSky.h和BlueSky.cpp到BlueSky.out的那些事儿
  15. winscp如何连接安卓手机_通过winscp连接路由器
  16. 小米MIUI手机adb连接教程
  17. 一、ping与arping介绍
  18. Spring源码阅读笔记(一):整体架构与核心技术
  19. 苹果4s怎么越狱_iPhone11/iPhoneXs iOS13.3越狱来啦
  20. 电力监控系统在智能建筑电气节能中的应用

热门文章

  1. yii验证系统学习记录,基于yiicms(一)写的太长了,再写一篇(二)
  2. sql数据库连接不上本地数据库的解决办法
  3. 16-Flutter移动电商实战-切换后页面状态的保持AutomaticKeepAliveClientMixin
  4. 5 微信公众号开发 获取 access_token
  5. SpringBoot Redis分布式锁
  6. oracle 其他表空间,Oracle查询表空间使用情况以及其他查询
  7. consul作为服务注册中心
  8. springmvc 结合ajax批量新增
  9. (一)elasticsearch6.1.1安装详细过程
  10. 【C++学习详细教程目录】