IIS进程回收导致定时器失效的解决方法(CMD命令)_win服务器

公司开发的网站使用的.net,网站中用到了定时器,放在Global.asax.cs文件中,但由于IIS设置了网站进程定期回收,回收后定时器也就没了。如果不让进程回收,又担心程序中有内存泄露。有人说可以在Application_End发起HTTP请求,但这样做和设置不让进程回收没有任何区别,结果就是该进程一直运行,只有保证不存在内存泄露才可以这样做。也有人说可以用Windows Service,对这个不了解,所以这招放弃了。最后想到了一个方法,编写脚本命令(这里用DOS命令)访问网站,再通过Windows的任务计划来定时执行脚本。.bat文件如下,直接运行该.bat,发现会用IE浏览器打开www.baidu.com,几秒后关闭,看来命令运行是OK的。

复制代码 代码如下:

::访问网站,触发定时器
::ping10次后关闭,10次大约延时10秒左右,不是很精确,然后关闭IE浏览器进程及子进程
 start iexplore.exe  www.baidu.com ::为了保密,这里没写真正要访问的网站
 ping -n 10 127.0.0.1>nul
 taskkill /f /im iexplore.exe  /t

任务计划在附件——系统工具中,可以“创建基本任务”和“创建任务”,前者比较简单,定时器的最短间隔为1天,后者功能更强大一些,定时器的最短间隔为1分钟。这里我使用“创建任务”,在“常规”中可以设置“只在用户登当运行”或“不管用户是否登录都要运行”,这里设置“不管用户是否登录都要运行”(注:选择该项时,设置完所有参数后会要求输入账户密码,如果账户密码为空,会提示错误,但貌似空密码也有解决办法),配置选与自己电脑的匹配的那项。建立好任务后,当定时器时间到了却没有打开IE浏览器的窗口,再看任务管理器,有进程iexplore.exe,而且网站也的确被访问了(在计划任务运行之前,网站进程是关闭的,而且可以保证该段时间内没有人访问,现在发现网站进程运行中),经过多次设置参数和测试,结果依旧。但如果设置成“只在用户登当运行”,却可以看到定时器到后会打开IE窗口。后来在CSDN看到一个帖子,里面有人说如果设置为“不管用户是否登录都要运行”,那程序就后台运行,要想看到交互界面,就要用DOS命令at添加任务计划。自己想了想,貌似真的是这样,但知道程序在后台运行了就OK了,看不到界面也无妨,也许这是Windows的一个bug吧。

缺点:

1、任务计划的定时器最短间隔为1分钟,如果再短的,就无能为力了,其实即使可以,也不要用这种发HTTP请求的方法去激活网站进程,之前设置每5秒发一次HTTP请求,最后服务器挂了,只能重启,原因也没查出来(后来知道不是因为HTTP请求频繁导致的,至于HTTP请求频繁会不会导致死机,我不清楚。通过事件日志,发现本次死机是因为Windows自动更新后重启,电脑是3点多开始重启的,但到9点了还没起来,后打电话问万网的客服,他们说电脑还在关机界面,看来应该是自动更新的问题。让他们重启后,就OK了,然后禁用了自动更新)。

2、关闭IE就意味着关闭所有页面,如果我们这时正在用IE看其它网页,那也会关闭,不过还好,因为是在服务器上,一般没人打开IE。

时间: 2024-08-01 00:39:03

IIS进程回收导致定时器失效的解决方法(CMD命令)_win服务器的相关文章

jquery在ie7下选择器的问题导致append失效的解决方法_jquery

1,有如下这样一段html 复制代码 代码如下: <div class="right"id="pending">  <table class="one"width="100%"border="0"cellspacing="0"cellpadding="0"> <tbody> </tbody> </table>

文件编码导致jquery失效的解决方法

在使用jquery编写图片滚动效果时,发现必须把图片滚动部分放到单独的页面里,然后在首页用<iframe>调用才能正确显示,并且不提示js错误. 最后试验无数次,结果发现是jquery所在文件的编码和网页编码不同,全部改为utf-8,正常显示.

文件编码导致jquery失效的解决方法_jquery

在使用jquery编写图片滚动效果时,发现必须把图片滚动部分放到单独的页面里,然后在首页用<iframe>调用才能正确显示,并且不提示js错误.最后试验无数次,结果发现是jquery所在文件的编码和网页编码不同,全部改为utf-8,正常显示.

iis Service Unavailable解决方法(权限问题)_win服务器

通过下面的方法解决了,希望碰到这个问题的朋友可以参考下.如果不行看以前发布的文章. 0. 测试环境 Windows Server 2003,IIS 6.0,Visual Studio 2005,.NET Framework 2.0,ASP.NET 2.0,MySQL 1. 现象描述 1)访问网站出现"Service Unavailable"错误 2)查看IIS中的应用程序池出现被自动禁用情况 3)计算机管理 - 系统工具 - 事件查看器 - 应用程序:出现错误(来源:.NET Runt

php对外发包引发服务器崩溃的终极解决方法分享[推荐]_win服务器

一.php对外发包分析 用php代码调用sockets,直接用服务器的网络攻击别的IP,常见代码如下: 复制代码 代码如下: $packets = 0; $ip = $_GET[\'ip\']; $rand = $_GET[\'port\']; set_time_limit(0); ignore_user_abort(FALSE); $exec_time = $_GET[\'time\']; $time = time(); print \"Flooded: $ip on port $rand \

远程桌面一连就断的解决方法(经常掉线)_win服务器

打开注册表 找到[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\RDPDR\ 在左侧的RDPDR上右键-权限,选上完全控制,把以下注册表内容.复制到记事本保存为reg文件.再导入注册表. 说明:此方法我也不知道有没有危害跟能不能用的啊.. 复制代码 代码如下: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\RDPD

php多次include后导致全局变量global失效的解决方法

这篇文章主要介绍了php多次include后导致全局变量global失效的解决方法,实例分析了$GLOBALS失效的原理与解决方法,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php多次include后导致全局变量global失效的解决方法.分享给大家供大家参考.具体分析如下: 在多个文件中,文件一个接一个include,但最后一个文件里的函数使用global后却无法引用全局变量.例如: a.php文件: ? 1 2 3 <?php $aa = 1; ?> b.php文件

php多次include后导致全局变量global失效的解决方法_php技巧

本文实例讲述了php多次include后导致全局变量global失效的解决方法.分享给大家供大家参考.具体分析如下: 在多个文件中,文件一个接一个include,但最后一个文件里的函数使用global后却无法引用全局变量.例如: a.php文件: <?php $aa = 1; ?> b.php文件: <?php include a.php function show(){ global $aa; var_dump($aa); } ?> 显示:null; 这种失效是由于多种原因造成的

thinkPHP使用post方式查询时分页失效的解决方法_php实例

本文实例讲述了thinkPHP使用post方式查询时分页失效的解决方法.分享给大家供大家参考,具体如下: 昨天晚上一直没有解决的php项目中的bug,就在刚才终于搞定,在这里还需要感谢各位大神给的帮助! 具体问题描述 最近遇到一个非常棘手的问题,也是因为刚入手thinkphp.在做项目的过程中,因为需要非常多的查询条件,如果以get方式提交表单的话,会因为url长度限制而报错,所以必须使用post方式提交表单数据,但是在分页的过程中,遇到了问题,因为thinkphp自带的分页是以a标签的形式,进