Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我应该如何运行后台服务来为Windows世界中的网站创建导出文件?_C#_Asp.net_Asp.net Mvc_Windows_Iis - Fatal编程技术网

C# 我应该如何运行后台服务来为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调度器选项,至少我不必担心我的程序会死机 您是如何处理的?我会创建

我创建了一个全新的ASP.NETMVC站点,并将“另存为”类型的功能卸载到一个可以在服务器后台运行的帮助程序中,这样网站就不需要承担所有的负载

我创建它是为了便于从命令行运行,现在我让它从windows调度器运行。问题是它的粒度是1分钟,这意味着网站的一些不幸运用户会点击链接,得到59秒的等待时间+实际处理报告的时间

我也有点担心我的项目的启动成本。我假设让程序持续运行会更便宜。我担心这个项目会消亡,但不会重生。有了windows调度器选项,至少我不必担心我的程序会死机


您是如何处理的?

我会创建一个Windows服务,并通过Windows调度程序运行该服务,而不是运行exe。然后可以将其设置为自动启动。然后,您可以在服务中设置一个计时器,每x秒轮询一次工作

另一种选择是使用类似的方法。前端只需在队列中插入一条消息来表示要执行的工作,然后让.NET服务监听队列(您可以让它在消息出现在队列中时立即处理消息,或者每x秒手动检查一次队列)


无论哪种方式,我认为Windows服务都是一条出路。

+1;您可以将您的用户请求放入该MSMQ队列,对其进行处理,并通过电子邮件通知您的用户;该电子邮件可能包含指向您的流程文件的链接,并放置在Web服务器文件夹中。