事情是这样的,我写了一个定时发送邮件的功能,定时器代码写在Application_Start函数上,自己本地调试无问题,但上传到iis上发现没有作用,无法实现定时发邮件功能。查了许久后发现原来是iis 有回收机制,当长时间无人访问网站时,会回收Application_Start 上的内存,造成定时器没有生效。所以思路很明确,需要定时访问网站,来触发Application_Start。
所以需要一个脚本来实现这个目的。
下面是这个脚本制作步骤:
打开你要访问的网站,我这里随便举个例子:CSDN - 专业开发者社区,然后f12打开开发者工具,点到网络这里的fetch/xhr, 随便访问一个内容,然后选中图中红色箭头的,右键点复制,点击复制为curl(bash),如图:
再打开Postman这个软件,点左上角的import按钮,然后在里面选择 rawtext,把刚才的复制进去
完成后点continue,再点后面弹出的import即可
然后会出现如下图的情况,点击右上角code,选择nodejs-request,然后将里面的代码复制,在创建一个名为main.js的文件,将复制代码粘贴进去。这样你就得到了这个脚本。
最后在你的服务器上创建一个定时任务运行这个脚本就行了,拿windows为例:windows 需要bat文件才可运行,所以创建txt文本,写上
@echo off
start cmd /k "cd E:\nodejs&&node C:\Users\Administrator\Desktop\main.js"
这里的配置根据实际来改,cd 后面的文件夹分别是node程序本身所在的,另一个是你要运行的脚本
(我这里的是main.js你可以改成你自己的),保存把后缀改成bat即可,这里要在服务器装node
打开计算机管理,点击任务计划程序,点击创建任务,如图;
我这里命名了main,你也可以改其他的,然后触发器你按你的需求来设,我这里要每天发邮件,所以设为每天,如图:
然后在操作中导入你的bat,我这里是main.bat即可。如图:
,这样就可每天定时访问你的网站,然后激活 Application_Start函数