回收应用程序池解决方法

以下程序就是实现自动关闭并回收应用程序缓冲池。

App.config内容

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <!-- 程序运行时隔(单位:毫秒) -->
    <add key ="TimeSpan" value ="10000"/>
    <!-- 要监视的进程(不加.exe),默认是vsjitdebugger -->
    <add key ="AppName" value ="zhaoPin.ClientServiceV2"/>
    <!-- 要回收的应用程序池名称 -->
    <add key ="Appool" value ="zhaoPin.Rc"/>
  </appSettings>
</configuration>

using System;
using System.Diagnostics;
using System.Configuration;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.Green;
            int i = 0;
            bool tag=false;
            Console.WriteLine("请不要关闭此窗口!!");
            string dd = System.Configuration.ConfigurationManager.AppSettings["TimeSpan"].ToString();
            string appname = System.Configuration.ConfigurationManager.AppSettings["AppName"].ToString();
            string appool = System.Configuration.ConfigurationManager.AppSettings["Appool"].ToString();
            while (true)
            {
                System.Diagnostics.Process[] p = System.Diagnostics.Process.GetProcesses();
                foreach (Process pi in p)
                    if (pi.ProcessName == appname)
                    {
                        tag=true;
                        pi.Kill();
                    }
                if (tag)
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    i++;
                    string msg = RecycleAppol(appool);
                    Console.WriteLine("成功关闭" + i + "次!!");
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine(msg);
                    tag = false;
                }
                System.Threading.Thread.Sleep(Convert.ToInt32(dd));
            }
        }
        static string RecycleAppol(string appoolname)
        {
            Process p = new Process();
            p.StartInfo.FileName = "cscript.exe";
            p.StartInfo.Arguments = "c:\\windows\\system32\\iisapp.vbs /a "+appoolname+" /r";
            p.StartInfo.CreateNoWindow = false;
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardError = true;
            p.StartInfo.RedirectStandardInput = true;
            p.StartInfo.RedirectStandardOutput = true;
            p.Start();
            return p.StandardOutput.ReadToEnd();
        }

}
}

时间: 2024-09-30 19:15:51

回收应用程序池解决方法的相关文章

为应用程序池 &#39;&#39;DefaultAppPool&#39;&#39; 提供服务的进程意外终止。进程 ID 是 &#39;&#39;xxx&#39;&#39;问题的解决方法

网上提供了很多办法,都未解决. 解决过程一波三折,依次用了下列方法: 1.解决办法 点击“开始”-“控制面板”-“管理工具”-“组件服务”-“计算机”-“我的电脑”-“DCOM”选项, 选择其下的“IIS ADMIN SERVICE”,右健选择“属性”,找到“安全”,在“启动和激活权限”中编辑“自定义”,添加帐号“Network Service”, 给该帐号赋予“本地启动”和“本地激活”的权限,重新启动IIS,(点“开始”-“运行”-“CMD”,点确定,然后运行IISRESET) 注:没有能够解

针对应用程序池“xxxxxx”的模板永久性缓存初始化失败,解决方法

日志名称:          Application 来源:            Active Server Pages 日期:            2014-11-22 9:09:39 事件 ID:         5 任务 类别:          无 级别:            错误 关键字:           经典 用户:            暂缺 计算机:           WIN-LI7412B42323 描述: 错误: 针对应用程序池“xxxxxx”的模板永久性缓存初始

IIS6.0 IIS7.5应用程序池自动停止的解决方法

前边提到由win2003升级到win2008 server r2 64位系统,然后用了几个小时配置IIS7.5+PHP+MYSQL等的环境,先是遇到IIS7.5下PHP访问慢的问题,解决之后又出了新的问题,真是折腾啊!在日志中发现IIS7.5的应用程序池自动停止,同时访问网站提示:HTTP Error 503,The service is unavailable.. 的错误,搜遍整个互联网总算是解决了问题.小编也整理了IIS6及IIS7.5遇到此类问题汇总解决方法,欢迎大家尝试. 关于IIS6的

JS高程中的垃圾回收机制与常见内存泄露的解决方法

起因是因为想了解闭包的内存泄露机制,然后想起<js高级程序设计>中有关于垃圾回收机制的解析,之前没有很懂,过一年回头再看就懂了,写篇博客与大家分享一下. #内存的生命周期: 分配你所需要的内存: 由于字符串.对象等没有固定的大小,js程序在每次创建字符串.对象的时候,程序都会分配内存来存储那个实体. 使用分配到的内存做点什么. 不需要时将其释放回归: 在不需要字符串.对象的时候,需要释放其所占用的内存,否则将会消耗完系统中所有可用的内存,造成系统崩溃,这就是垃圾回收机制所存在的意义. 所谓的内

IIS的应用程序池优化方法

IIS的应用程序池优化方法 IIS应用程序池优化方案 服务器经常产生“应用程序池 'DefaultAppPool' 提供服务的进程关闭时间超过了限制.进程 ID 是 '3504'.”的错误,导致iis处于假死状态,经了解是IIS应用程序池的设置问题.解决方法如下(红色字为标记): Internet 信息服务(IIS)管理器->应用程序池->DefaultAppPool->右击属性一.回收1.回收工作进程(分钟):选中,值为1740 (800)2.回收工作进程(请求数目):(不选)(原先设

(转)Java ConcurrentModificationException异常原因和解决方法

转自 http://www.cnblogs.com/dolphin0520/p/3933551.html 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常.下面我们就来讨论以下这个异常出现的原因以及解决办法. 以下是本文目录大纲: 一.ConcurrentModificationException异常出现的原因 二.在单线程环境下的解决办法 三.在多线程环境下的解

Tomcat 优化 java.lang.OutOfMemoryError: Java heap space 的解决方法

java.lang.OutOfMemoryError: Java heap space 的解决方法 关键字: tomcat outofmemoryerror permgen space java heap space 最近在熟悉一个开发了有几年的项目,需要把数据库从mysql移植到oracle,首先把jdbc的连接指向mysql,打包放到tomcat里面,可以跑起来,没有问题,可是当把jdbc连接指向oracle的时候,tomcat就连续抛java.lang.OutOfMemoryError的错

IIS APPPOOL\DefaultAppPool 登录失败的解决方法

添加ASP.NET网站时,选择添加"添加应用程序"连接sql server 2005(2008)可能会报始下的错误: (说明:2005必报错,2008选报错) "无法打开登录所请求的数据库 "databaname".登录失败. 用户 'IISAPPPOOL\DefaultAppPool' 登录失败." 遇到这个问题时,可以参考下如下的解决方法: 1.数据库: 打开sql server 2005(2008) management studio 安全

检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(转)

我们将ASP.NET程序从IIS6移植到IIS7,可能运行提示以下错误: HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置. 为什么会出现以上错误? 在IIS7的应用程序池有两种模式,一种是“集成模式”,一种是“经典模式”. 经典模式 则是我们以前习惯的IIS 6 的方式. 如果使用集成模式,那么对自定义的httpModules 和 httpHandlers 就要修改配置文件,需要将他们转移到<modules