IIS后台进程

Posted

技术标签:

【中文标题】IIS后台进程【英文标题】:IIS background process 【发布时间】:2011-12-04 02:18:45 【问题描述】:

我有运行我创建的几个 WCF REST 服务的 IIS 服务器。 现在我需要添加一些将在服务器上运行并偶尔为我做一些工作的进程。

我猜 IIS 应该启动某种后台进程之类的,但我不确定在这种情况下我应该使用什么技术?

【问题讨论】:

如果您搜索“计划任务”而不是“后台进程”,您会在这里找到很多关于此主题的问题。 How to set a scheduled task to run in background using Windows Task Scheduler 的可能重复项 【参考方案1】:

在阅读了至少三个其他类似问题后,似乎最好的做法是避免运行后台线程并允许 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?

【讨论】:

【参考方案2】:

正如其他人所提到的,作为 Windows 任务计划程序的替代方案,您还可以:

在您的global.asax 文件中,在您的application_start() 方法中,您可以启动一个新线程来执行您想做的任何事情,然后在application_end() 方法中将其关闭。

【讨论】:

如果您的应用空闲时间过长,您还必须将 IIS 配置为不卸载它。【参考方案3】:

查看window task scheduler

您可以安排一个流程来启动,然后检查是否有任何组件已排队等待它执行。工作可以存储在文件(需要锁定)或数据库表(这是我的偏好)中。

【讨论】:

【参考方案4】:

Windows 计划任务通常是执行此操作的方法。

【讨论】:

以上是关于IIS后台进程的主要内容,如果未能解决你的问题,请参考以下文章

linux进程管理(进程的前后台调用)

Linux 进程后台运行

linux中后台挂载进程和卸载进程

linux之进程管理,系统监控

Oracle后台进程

如何在进程创建的过程中Attach上WinDBG