2012-02-21 122 views
3

客户端向我请求了一个在后端执行大量处理的Web应用程序(从文件读取,写入Web服务)。我的问题是,由于这个“过程”(当用户点击'开始')可能需要几个小时,我该如何使它在用户关闭网页后继续处理?请让我知道,如果这没有任何意义,我可以提供更多信息。任何帮助将不胜感激,谢谢!从Web应用程序请求中创建单独的进程

+0

@DmitryBoyko [编辑问题](http://stackoverflow.com/suggested-edits/206335)只是为了大胆的某些部分?真? – Basic 2012-02-21 17:23:07

回答

1

您必须为其创建MS Windows服务。

您已经为该服务提供了一些数据库表,客户端将使用您的网站功能。

+2

请注意,您通常无法在共享主机环境中运行Windows服务。您需要完全访问Web服务器才能安装和管理Web服务。如果您没有此类访问权限,则可以在您有权访问的单独机器上运行Windows服务。在这种情况下,Web服务器必须以某种方式向另一台机器发送请求(例如,通过Web服务调用)。在您的网络流量较大的环境中,无论如何将Windows服务分离到单独的计算机可能是明智的。 – 2012-02-21 17:19:29

0

最好的解决方案将是在Windows服务中完成工作,并使用您的Web应用程序来触发处理。

+0

是否可以在同一个解决方案中拥有2​​个Windows服务? – 2012-02-21 17:18:39

+1

@IsaacLevin - 是的。解决方案中可以有许多不同的服务。您也可以在一台机器上安装多个服务。 – Oded 2012-02-21 17:19:26

+0

@Oded所以我会做这样的例子 http://www.fredmastro.com/post/Call-your-Web-Service-from-your-Web-Application.aspx – 2012-02-21 17:31:15

0

这基本上是一个“批量工作”的要求,这就是我建议你接近它的方法。

客户端将使用网页,而不是执行的工作,而是管理正在执行工作的批处理作业列表。安排它们,启动或停止它们,查看它们的状态和当前输出等等。 (是的,就像他们这样做是在1970年的,但没有“// FOOBAR JOB(123456)” ......感谢上帝。

用户到该网页,并输入请求。背 - 主机上的服务进程(批处理作业管理器...)现在可以在一台计算机上启动作业;也许一次可以执行多个作业。用户可以同时注销网站并执行任何他喜欢的操作然后,他可以随时回来,回到任何可能的工作监控网页,看看事情进展如何。停止工作,暂停/恢复,你有什么,

还有批量作业监视工具的批次已经存在,适用于各种环境,包括免费和商业。所以,它不像你必须构建所有这些东西;你只需要确定什么现货包装最适合你和你的客户。

+0

你能举个例子说明如何做到这一点?似乎它可能是我需要采取的路线。 – 2012-02-21 17:38:52