用c#怎么检测iis应用程序池没有4.0是否被停止了,即

没有更多推荐了,
不良信息举报
举报内容:
C#IIS网站应用程序池启动回收停止
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!&>&iis应用程序池回收批处理
iis应用程序池回收批处理
上传大小:312B
当服务器上IIS需要回收所有应用程序池时,一个一个的回收太麻烦了,也容易遗漏,有了这个批处理,点击一下,就会自动回收所有的应用程序池,也可以添加到任务计划
综合评分:1
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有1条
不好用! 浪费积分
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
iis应用程序池回收批处理
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
duyiwuer119
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
iis应用程序池回收批处理应用程序池启动不了
[问题点数:40分,结帖人chai1338]
应用程序池启动不了
[问题点数:40分,结帖人chai1338]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年7月 Linux/Unix社区大版内专家分月排行榜第三2003年2月 C/C++大版内专家分月排行榜第三
匿名用户不能发表回复!|iis应用程序池_百度百科
清除历史记录关闭
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
iis应用程序池
应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。
iis应用程序池查看与配置
iis应用程序池配置应用程序池属性
在管理中展开应用程序池文件夹,然后右击对应的应用程序池,点击属性,你可以在应用程序池的属性中进行以下:
iis应用程序池回收
在回收标签,你可以设置工作进程的回收方式:
回收工作进程(分钟):在工作进程运行多少分钟后回收工作进程,默认启用,并且设置为1740分钟(29小时);
回收工作进程(请求数目):在工作进程处理多少 个HTTP请求后终止此工作进程,默认禁用,如果启用则默认值为35000;
在下列时间回收工作进程:在指定的时间回收工作进程,默认禁用;如需启用,勾选后点击添加按钮添加回收的时间即可,使用24小时制定义回收的时间;
消耗太多内存时回收工作进程:
最大(兆):当工作进程使用的虚拟内存达到设置的值时回收工作进程,默认禁用,如果启用则默认值为500 M;建议设置为不超过虚拟内存总数的70%;
最大使用的内存(兆):当工作进程使用的达到设置的值时回收工作进程,默认禁用,如果启用则默认值为192 M;建议设置为不超过物理内存总数的60%;
另外需要注意的是,应用程序池具有以下两种工作方式,不过这两种回收方式均不会造成Web服务的中断:
默认情况下,应用程序池使用重叠回收方式。在这种方式下,当应用程序池要关闭某个工作进程时,会先创建一个工作进程,直到新的工作进程成功创建后才关闭旧的工作进程;
应用程序池也可以先关闭旧的工作进程,然后再创建新的工作进程。
如果Web应用程序不支持多实例运行,那么你必须配置应用程序池禁止使用重叠回收方式。此配置无法在管理中进行修改,只能通过在metabase.xml中修改对应应用程序池的DisallowOverlappingRotation metabase属性为true进行。
iis应用程序池性能
在性能标签你可以设置工作进程的运行方式:
在空闲此段时间后关闭工作进程(分钟):当工作进程空闲多少分钟后关闭此工作进程,这降低了空闲工作进程对系统资源和CPU性能的消耗,默认启用并且设置为20分钟;
核心请求队列限制为(请求次数):当接收到某个客户端发送的时,如果处理此请求的对应应用程序池的工作进程还处于忙状态,则HTTP.sys将接收到的请求保存在对应应用程序池的请求队列中,直到工作进程空闲为止。此选项即用于设置此应用程序池的请求队列所能容纳的请求数量,默认情况下每个应用程序池的请求队列限制为保留1000个请求,如果超出则向客户端返回,你可以根据需要适当进行修改,最大可以设置为65535。但是如果设置太大则会消耗大量的系统资源 ,而设置太小会导致客户端访问时频繁出现503错误。
启用CPU监视:监视此应用程序池的,默认未启用;如果某个应用程序池占用的CPU利用率过多,那么可以通过配置此选项来限制此应用程序池;
最大CPU使用率(百分比):所设置的应用程序池所能使用的最大CPU使用率;启用CPU监视时默认值为100;
刷新CPU使用率(分钟):刷新CPU使用率的间隔时间;启用CPU监视时默认值为5;
CPU使用率超过最大使用率时执行的操作:当此应用程序池的CPU使用率超过所设置的最大CPU使用率时所进行的操作,启用CPU监视时默认为无,此时只是在事件日志中进行记录而不进行其他操作;如果选择为关闭,那么IIS将关闭此应用程序池中的所有工作进程;
:在Web园中你可以配置此应用程序池所使用的最大工作进程数,默认为1,最大可以设置为4000000; 配置使用多个工作进程可以提高该应用程序池处理请求的性能,但是在设置为使用多个工作进程之前,请考虑以下两点:
每一个工作进程都会消耗系统资源和CPU占用率;太多的工作进程会导致系统资源和CPU利用率的急剧消耗;
每一个工作进程都具有自己的状态数据,如果Web应用程序依赖于工作进程保存状态数据,那么可能不支持使用多个工作进程。
iis应用程序池运行状况
在运行状况标签你可以配置应用程序池监视工作进程的运行状况,
启用Ping:默认情况下应用程序池配置为每隔30秒Ping工作进程,当工作进程没有进行响应时,则认为此工作进程出现故障并默认配置为关闭此工作进程。你可以修改Ping的时间间隔,但是太长的Ping间隔可能会导致Web服务的中断,而太短的Ping间隔又会消耗更多的系统资源和CPU利用率,因此建议你保留默认配置;
启用快速失败保护:如果Web应用程序代码编写有问题,它可能会导致工作进程持续出现问题。默认情况下应用程序池配置为启用快速失败保护,当工作进程在配置的时间段(默认为5分钟)内发生的失败次数超过了配置的值(默认为5次),则禁用此应用程序池。
启动时间限制:等待属于此应用程序池的工作进程启动的时间,当工作进程启用时间超出此设置值时,IIS会在事件日志中进行记录;
关闭时间限制:当IIS检测到某个工作进程出现故障时,将此工作进程标记为关闭,此选项指定了IIS等待工作进程自动关闭的时间限制,如果超出此时间限制后工作进程尚未关闭,则IIS强行关闭工作进程。
iis应用程序池标识
在标识标签,你可以配置工作进程所运行的用户账户。在IIS 5或者当IIS 6运行在IIS 5时,工作进程运行在本地系统账户,而运行在工作进程隔离模式下的IIS 6的工作进程运行在网络服务账户下,这降低了系统被攻击的可能性。
你可以配置工作进程运行在预定义的本地系统、本地服务或网络服务账户下,也可以配置为使用某个自定义的用户账户。建议使用默认的网络服务账户;不过如果为了更高的安全性,可以配置使用自定义的用户账户,不过建议你只是将此自定义用户加入到IIS_WPG用户组中,因此IIS_WPG用户组包含了可以启动和运行工作进程的最小权限。
iis应用程序池创建应用程序池
要新建应用程序池,在管理中右击应用程序池文件夹,指向新建,选择应用程序池;
然后在弹出的添加新应用程序池对话框,在应用程序池ID栏输入应用程序池名,然后选择使用默认设置还是继承现有的应用程序池设置,再点击确定即可;
iis应用程序池分配Web站点到应用程序池中
在管理中展开网站文件夹,右击对应的网站,然后选择属性,在弹出的网站属性对话框上,点击主目录标签,然后在应用程序池栏选择不同的应用程序池即可,默认情况下所有网站所使用的应用程序均名为默认应用程序,如果要想此网站使用不同的应用程序名,则在应用程序名栏修改即可,例如在此我就修改为winsvr,这主要是便于查看,然后点击确定即可,
iis应用程序池服务停止的解决方法
一、2003应用程序池自动死了,不能恢复了,一直出现 Service Unavailable 常见方法如下。
1:没有打SP1补丁的时候会出现这个假死问题,但现在微软都在自动更新里面出补丁了,一般你打好最新补丁后是不会出现此问题了。(所以现在的假死与这个关系不是很大)
2:从IIS6.0开始CPU资源都在里面限制了,不象以前的IIS.5。所以假死的池的缘故就是池被拉死,你在网站打不开的时候可以看到你的某个应用池是禁用的,上面出现一个红叉。你鼠标右键启动网站又会自动恢复。 这个原因:大概是以下几个因数造成的。(1):你限制了应用池的资源,限制得太小 比如:50这样或更少更多一点,这个时候如果你这个池下面的网站占用CPU太高,比如超过50% 那么5分钟后他就自动死了,手工默认建立的应用池默认是超过资源不操作。出现上面这个情况解决方法:1:不限制CPU资源,(这个是不可取的,不限制资源,有的程序有BUG占用资源厉害了的,服务器都会被拉死,你可能都无法操作服务器。)2:在超过资源那里选择关闭,这个关闭默认是失败5次,90秒内恢复,一般默认就可。网站能自动恢复,这个关闭:不是永久关闭,意思是超过资源关闭,然后在某时间内自动恢复池。不操作就是不恢复,这个是很多人的误区。(2):内存限制 在上面有和最大内存限制,如果你设置了这个。那么网站访问量大了 也会出现假死,所以不建议设置这里。默认就可。
3:就是服务器自身内存太小,网站运行当然需要使用到内存了,当内存不够的时候应用池也会死掉变成禁用。那么只有等内存全部释放出来才能恢复应用池了。出现这个情况:那么你就要考虑加内存或者检查到底是什么程序占用了内存了。比如数据库,这个可是吃内存得大户啊,最好别和同时一个服务器上。很多人用1G内存做 2003系统,2003NET结构是很占用内存的,所以做服务器选2003还得把内存加到2G或更高才好。 内存不够上面 2点讲到的,是没办法操作了,也无法自动恢复。
4:就是ACCESS数据库太大或查询太多,这个也会出现把拉死,解决方法;修复ACCESS数据库,或尽量少用ACCESS数据库,升级至;或者在技术方面革新,像现在有些网站系统,风讯、等cms;、zblog等博客程序,都支持生成静态功能.
5:不同网站用不同:根据你自己实际情况而定,站点大的最好独立一个应用池,限制他的资源超过了自动回收,看上面(1)讲到的,这样就不影响其他站点。中型站点:多个网站共用一个应用池,比如5个站点用一个池,设置他资源时间等等。这样他们就算超资源了也不影响其他应用池的网站。
6:设置回收时间:很多人以为设置回收池越短越好,其实是错误的,每次回收当然是把内存回收回来了,但加重了一次服务器的负担,当服务器比较繁忙的时候,有可能导致其他应用池死。所以建议设置共1000就行了。其他独立池按照他网站流量而设置 可以设置600 也行,共用的不建议设置太短。
7:网站后台过不了多久自动退出又要重新登陆:这个情况就是你设置回收时间太短了,按照 6点设置吧。 不要设置什么20分、30分这样的,这样不好的。另外一个原因就是和站的响应设置时间有关,设置得稍长些。
8:windows 2003系统iis6访问本机的站点时提示“Service Unavailable”;查看的应用程序池,状况提示为:未指定错误,同时应用程序池自动停止运行;用查看系统错误日志,发现如下提示:-----------------------------------应用程序-特定 权限设置未将 COM 服务器应用程序(CLSID 为{A9E6D0-B9B9-00A0C922E750})的 本地 激活 权限授予用户 NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20)。可以使用组件服务管理工具修改此安全权限。解决方法,给NETWORK SERVICE 加上访问iis服务的权限,具体方法如下:点击“开始”-“控制面板”-“管理工具”-“”-“计算机”-“我的电脑”-“DCOM”选项,选择其下的“IIS ADMIN SERVICE”,右健选择“属性”,找到“安全”,在“启动和激活权限”中编辑“自定义”,添加帐号“NETWORK SERVICE ”,给该帐号赋予“本地启动”和“本地激活”的权限,重新启动之后再访问同一站点,则一切正常。
9:重启IIS中的特定应用程序池命令和自动重启的方法在操作系统是Windows server 2003 SP1+的情况下,可以用以下命令部分重启IIS应用程序池:
c:\windows\\iisapp.vbs /a &DefaultAppPool& 其中/a 代表alternatively,&DefaultAppPool&代表应用程序池的实例名。如果要设置自动重启这个应用程序池,可以尝试放在批处理中,用计划任务调用此批处理即可。很多人觉得计划任务不安全,都要禁掉,事实上,计划任务的不安全是建立在其它方面不安全的前提上的,如果由于其它方面的不安全,被放入执行程序,计划任务执行,这和计划任务没有直接关系。当然,关掉,是会减少一些安全隐患,这是不错。
清除历史记录关闭IIS应用程序池监控_ASP.NET技巧_动态网站制作指南
IIS应用程序池监控
来源:人气:1780
最近发现公司运行的web网站应用程序池会突然停止,做的负载均衡(路由负载)又无法监测到IIS应用程序池的情况,就想着通过某一种监控方式监测IIS应用程序池的情况,如果处关闭状态则立刻重新启动.所说的IIS应用程序池监控也只能算是伪监控,不喜勿喷.
运行: winform&+ windows计划任务
1.首先获取IIS版本号
/// &summary&
/// 获取当前计算机相关信息
/// &/summary&
public static class AcquireComputerInfo
/// &summary&
/// 获取当前IIS版本号
/// &/summary&
/// &param name="domainname"&&/param&
/// &returns&&/returns&
public static string GetIssVersionByDri(string domainname = "")
if (string.IsNullOrEmpty(domainname))
//如果为空 则默认为本地机器
domainname = "LOCALHOST";
DirectoryEntry getEntity = new DirectoryEntry("IIS://" + domainname + "/W3SVC/INFO");
string Versions = getEntity.operties["MajorIISVersionNumber"].Value.ToString();
//catch (Exception se)
//说明一点:IIS5.0中没有(int)entry.Properties["MajorIISVersionNumber"].V属性,将抛出异常 证明版本为 5.0
//MessageBox.Show("获取ISS的版本是发生异常信息:" + se.Message);
return "5.0";
//RegistryKey表示 Windows 中的项级节点.此类是注册表封装
string issversion = string.E
RegistryKey getkey = Registry.LocalMachine.OpenSubKey("software\\microsoft\\inetstp");
if (getkey != null)
issversion = Convert.ToInt32(getkey.GetValue("majorversion", -1)).ToString();
//MessageBox.Show(issversion.ToString());
/// &summary&
/// 获取当前计算机信息
例如:计算机名:aaa,:10.10.10.10
/// &/summary&
/// &returns&&/returns&
public static string GetComputerInfo()
var computerNmae = System.Net.Dns.GetHostName();//获取当前计算机名称
var computerIp = new System.Net.IPAddress(System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName()).AddressList[0].Address).ToString();//获取局域网IP
return string.Format("PC_Name: {0},IP: {1}",computerNmae,computerIp);
获取当前计算机相关信息
2.查看当前iis上所有的应用程序池的 & & &&
///&&summary&
/// 检测当前线程池是否正常开启
/// &/summary&
public void MonitoringISSAppPool()
// string method_Recycle = "Recycle"; //Start开启
Recycle回收
string method_Start = "Start";
var i = 0;
DirectoryEntry appPool = new DirectoryEntry("IIS://localhost/W3SVC/AppPools");
foreach (DirectoryEntry item in appPool.Children)
string AppPoolCommand = item.Properties["ManagedPipelineMode"].Value.ToString();
string ManagedRuntimeVersion = item.Properties["ManagedRuntimeVersion"].Value.ToString();//,net版本号
string AppPoolState = item.Properties["AppPoolState"].Value.ToString();//当前状态
if (AppPoolState != "2")
DirectoryEntry findPool = appPool.Children.Find(item.Name, "IIsPool");
findPool.Invoke(method_Start, null);
appPool.CommitChanges();
appPool.Close();
var IIsMsg = string.Format("[{0}],名称:[{1}],NET版本:{2},标识:{3},当前状态:[{4}],时间:{5}\n", PC_Info, item.Name, ManagedRuntimeVersion, item.SchemaClassName, "已启动", DateTime.Now.ToString());
ClsLogHelper.m_CreateWorkLogTxt(item.Name, IIsMsg);
//lblCount_text.Text = i.ToString();
catch (Exception ex)
ClsLogHelper.m_CreateErrorLogTxt("MonitoringISSAppPool", string.Format("{0},时间:{1},启动失败", AcquireComputerInfo.GetComputerInfo(), DateTime.Now), ex.Message);//日志记录错误信息
ClsLogHelper.Email("MonitoringISSAppPool", string.Format("{0},时间:{1},启动失败", AcquireComputerInfo.GetComputerInfo(), DateTime.Now)+" "+ ex.Message);//邮件发送错误信息
3.那么剩下就是windows计划任务的工作了,简单配置一下设置触发器时间为每隔1秒中执行一次
到此一个IIS应用程序池伪监控就已经完成,当然在启动应用程序池时,启动失败时还需要记录详细的错误信息,以及将发生错误的服务器名称和IP通过邮件的方式发送给管理员,管理员可以在第一时间知道具体那台服务器IIS出现问题.
通过日志记录我们可以发现在第二条记录中Audi这个应用程序池已经被正常启动.
当然这种小工具只能临时解决IIS应用程序池意外停止的问题,IIS应用程序池意外停止可能有很多原因导致,例如:内存溢出或者代码逻辑问题,要想根本解决就只能安排程序员检查代码了.
不喜勿喷,如果有什么更好的意见或者想法欢迎提出宝贵意见哦....
优质网站模板

我要回帖

更多关于 iis 应用程序池 的文章

 

随机推荐