webapi + windows计划 + mshta 实现定时执行任务

Posted lcawen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webapi + windows计划 + mshta 实现定时执行任务相关的知识,希望对你有一定的参考价值。

当然,实现定时任务有更好的操作方式,比如
方式一:
asp.net mvc+quartz.net +corn +webapi,asp.net mvc做任务管理的平台,使用CronTrigger做定时触发,quartz.net做定时执行控制,webapi实现执行逻辑
方式二:
老生常谈的一种,windows服务(开机自启)+定时器(timer,quartz.net等)+webapi(或者其他实现执行逻辑)
最近在做cs,timer实现时间的控制并不精确,决定以windows计划实现,先介绍一下mshta吧:

Mshta
它支持命令行参数,可以接收JS和VBS的方法。
例子如下:

//JS,要以vbscript:开头,实现不打开浏览器显示hello world!
mshta vbscript:window.execScript("alert(‘hello world!‘);","javascript")(window.close)

//VBA,要以javascript:开头,实现不打开窗体显示hello world!
mshta javascript:window.execScript("msgBox(‘hello world!‘):window.close","vbs") 

WebApi

创建一个WebApi即可,假设路径为http://localhost:22673/api/SendMail/SendToLeader,需要支持HttpGet

那么在重建windows执行计划时,在操作--选择启动程序,可参照如下:

//cmd命令下,可通过执行如下语句实现逻辑控制,不打开浏览器
//直接使用mshta作为程序文件可以
//创建bat文件作为程序文件也可以
mshta vbscript:createobject("wscript.shell").run("""iexplore"" http://localhost:22673/api/SendMail/SendToLeader",0)(window.close)

 








以上是关于webapi + windows计划 + mshta 实现定时执行任务的主要内容,如果未能解决你的问题,请参考以下文章

通过 Angular 调用时,Windows 身份验证不适用于 WebAPI

使用通过 Blazor WASM 使用 Windows 身份验证的 WebAPI

nodejs获取WebAPI(Windows验证)

服务器端 webapi 调用上的 Windows 身份验证失败

Webapi传输大量大型文件[重复]

windows环境jenkins安装 自动编译 publish over ssh 远程发布.netcore webapi 服务化.netcore webapi