如何在IIS中创建能够运行扩展进程的作业

如何在IIS中创建能够运行扩展进程的作业,iis,Iis,我有一个web服务应用程序,我有一个web服务调用,可能需要1小时到14小时不等,具体取决于需要处理的数据和当月的时间 是否有任何方法可以在IIS中创建能够运行此扩展进程的作业。我还需要作业管理和报告,以便能够查看作业是否正在运行,从而不会在其他作业的基础上创建新的作业 我将主要与IIS6合作。并希望使用C#代码 现在我正在使用一个web服务调用,但我不喜欢让web服务运行这么长时间的想法,而且由于web服务的性质,我不能再拆分功能了 如果IIS作业可用,它们将非常棒。有什么想法吗?如果我是你,

我有一个web服务应用程序,我有一个web服务调用,可能需要1小时到14小时不等,具体取决于需要处理的数据和当月的时间

是否有任何方法可以在IIS中创建能够运行此扩展进程的作业。我还需要作业管理和报告,以便能够查看作业是否正在运行,从而不会在其他作业的基础上创建新的作业

我将主要与IIS6合作。并希望使用C#代码

现在我正在使用一个web服务调用,但我不喜欢让web服务运行这么长时间的想法,而且由于web服务的性质,我不能再拆分功能了


如果IIS作业可用,它们将非常棒。有什么想法吗?

如果我是你,我会制作一个由web服务启动的命令行应用程序。基本上,运行命令行应用程序非常简单

 Process p = new Process();

 p.StartInfo.UseShellExecute = false;
 p.StartInfo.FileName = "appname.exe";
 p.Start();

每台机器的工作进程数量有限,它们实际上并不适用于长时间运行的作业。

有一种可能,需要花费一点设置成本,即让您的处理作为侦听消息队列(MSMQ或类似)的Windows服务运行,并让您的web服务简单地将请求发布到消息队列中,由处理服务处理

监控工作更加困难;您的web服务需要有一种查询处理服务的方法来找出其状态。这是一个IPC(进程间通信)问题,它有许多不同的解决方案,并根据您的环境和环境进行各种权衡


也就是说,对于简单的情况,Matt的解决方案可能就足够了。

这可能是一个很好的解决方案,加上互斥,可以确保只有一个运行版本。。。