【发布时间】:2011-12-04 02:18:45
【问题描述】:
我有运行我创建的几个 WCF REST 服务的 IIS 服务器。 现在我需要添加一些将在服务器上运行并偶尔为我做一些工作的进程。
我猜 IIS 应该启动某种后台进程之类的,但我不确定在这种情况下我应该使用什么技术?
【问题讨论】:
-
如果您搜索“计划任务”而不是“后台进程”,您会在这里找到很多关于此主题的问题。
我有运行我创建的几个 WCF REST 服务的 IIS 服务器。 现在我需要添加一些将在服务器上运行并偶尔为我做一些工作的进程。
我猜 IIS 应该启动某种后台进程之类的,但我不确定在这种情况下我应该使用什么技术?
【问题讨论】:
在阅读了至少三个其他类似问题后,似乎最好的做法是避免运行后台线程并允许 Windows 服务应用进行处理。您可以将行拖放到数据库表中或将行附加到文件以启动 Windows 服务工作。
查看这些主题中的任何一个...
Can I use threads to carry out long-running jobs on IIS?
What are some best practices for managing background threads in IIS?
【讨论】:
正如其他人所提到的,作为 Windows 任务计划程序的替代方案,您还可以:
在您的global.asax 文件中,在您的application_start() 方法中,您可以启动一个新线程来执行您想做的任何事情,然后在application_end() 方法中将其关闭。
【讨论】:
您可以安排一个流程来启动,然后检查是否有任何组件已排队等待它执行。工作可以存储在文件(需要锁定)或数据库表(这是我的偏好)中。
【讨论】:
Windows 计划任务通常是执行此操作的方法。
【讨论】: