【发布时间】:2012-03-21 07:37:41
【问题描述】:
我有一个定义明确的服务合同,它公开了一堆方法。我们有这个合同的典型服务实现,它与我们的 MVC 应用程序一起托管在 IIS 7 中。
该架构是典型的分布式应用程序,其接口定义在基础核心库中(可重新分发),实现在独立服务库中,最后是 MVC 应用程序公开实现的端点(其中位于服务库中)。
现在的情况是,这些现有服务方法之一可能需要执行一个可能需要长达 10 分钟才能执行的逻辑过程。在正常情况下,我们会考虑工作流服务,但所讨论的接口使用得很好,我们有一套单元测试来测试我们的服务等,我们真的无法摆脱我们拥有的这种实现。
所以我的问题是 -
- 是否可以有一个独立的工作流来执行这个长时间运行的过程并从我们的 WCF 服务中调用它?
- 如果是这样,我如何确保在 IIS 中执行我的服务的工作线程在工作流期间保持活动状态?
- 最终客户端不需要等待该服务的响应。这是一种“一劳永逸”的方法。服务启动工作流并等待其完成时,客户端调用能否立即结束?
【问题讨论】: