内存中工作流wcf的多实例

内存中工作流wcf的多实例,wcf,workflow,Wcf,Workflow,我设计了两个名为“WCF A”和“WCF B”的WCF长时间运行工作流(长寿命) 我在“WCF a”中有一个循环,每次执行此循环时,我都会向“WCF B”发送一条消息。因此,在“WCF B”收到停止消息之前,内存中可能存在“WCF B”的某些实例。WCF A和B都托管在windows服务中。开始执行Windows服务时一切正常,但一段时间后它们将无法工作,正如我在任务管理器中所监视的那样,它们不会使用任何cpu 问题出在哪里?这完全取决于,监视cpu使用情况并不能说明什么。它可以是: 死锁发生在

我设计了两个名为“WCF A”和“WCF B”的WCF长时间运行工作流(长寿命)

我在“WCF a”中有一个循环,每次执行此循环时,我都会向“WCF B”发送一条消息。因此,在“WCF B”收到停止消息之前,内存中可能存在“WCF B”的某些实例。WCF A和B都托管在windows服务中。开始执行Windows服务时一切正常,但一段时间后它们将无法工作,正如我在任务管理器中所监视的那样,它们不会使用任何cpu


问题出在哪里?

这完全取决于,监视cpu使用情况并不能说明什么。它可以是:

  • 死锁发生在循环中的某个地方,即每个实例是否使用共享对象
  • 通道出现故障(因为超时、异常等),无法执行
  • 取决于WCF B的每个实例的对象,它可能达到操作系统限制(例如:打开的文件数)
  • 根据您的问题,我想您可能会发现调试服务很困难,您可以尝试以下方法:

  • 启用WCF日志,SO或google上有大量条目
  • 将调试器附加到您的服务,如果您发现这提供了随机入口点,您可以尝试在服务的OnStart重载处调用put debugger.Launch()
  • 登录到您的呼叫所在的文件
  • 作为控制台应用程序启动您的服务
  • 希望这有帮助