C# 我应该如何运行后台服务来为Windows世界中的网站创建导出文件?
我创建了一个全新的ASP.NETMVC站点,并将“另存为”类型的功能卸载到一个可以在服务器后台运行的帮助程序中,这样网站就不需要承担所有的负载 我创建它是为了便于从命令行运行,现在我让它从windows调度器运行。问题是它的粒度是1分钟,这意味着网站的一些不幸运用户会点击链接,得到59秒的等待时间+实际处理报告的时间 我也有点担心我的项目的启动成本。我假设让程序持续运行会更便宜。我担心这个项目会消亡,但不会重生。有了windows调度器选项,至少我不必担心我的程序会死机C# 我应该如何运行后台服务来为Windows世界中的网站创建导出文件?,c#,asp.net,asp.net-mvc,windows,iis,C#,Asp.net,Asp.net Mvc,Windows,Iis,我创建了一个全新的ASP.NETMVC站点,并将“另存为”类型的功能卸载到一个可以在服务器后台运行的帮助程序中,这样网站就不需要承担所有的负载 我创建它是为了便于从命令行运行,现在我让它从windows调度器运行。问题是它的粒度是1分钟,这意味着网站的一些不幸运用户会点击链接,得到59秒的等待时间+实际处理报告的时间 我也有点担心我的项目的启动成本。我假设让程序持续运行会更便宜。我担心这个项目会消亡,但不会重生。有了windows调度器选项,至少我不必担心我的程序会死机 您是如何处理的?我会创建
您是如何处理的?我会创建一个Windows服务,并通过Windows调度程序运行该服务,而不是运行exe。然后可以将其设置为自动启动。然后,您可以在服务中设置一个计时器,每x秒轮询一次工作 另一种选择是使用类似的方法。前端只需在队列中插入一条消息来表示要执行的工作,然后让.NET服务监听队列(您可以让它在消息出现在队列中时立即处理消息,或者每x秒手动检查一次队列)
无论哪种方式,我认为Windows服务都是一条出路。+1;您可以将您的用户请求放入该MSMQ队列,对其进行处理,并通过电子邮件通知您的用户;该电子邮件可能包含指向您的流程文件的链接,并放置在Web服务器文件夹中。