内存中的多工作流wcf实例

我使用名称'WCF A'和'WCF B'设计了两个WCF长时间运行的工作流(长命周期)。

我在'WCF A'中有一个循环,每次执行这个循环时,我都会向'WCF B'发送一条消息。 所以它可能在内存中存在'WCF B'的一些实例,直到'WCF B'有停止消息。 WCF A和B都在Windows服务中托管。 首先,执行Windows服务一切都很好,但过了一段时间后,它们将无法工作,而且我在任务管理器中监视它们时没有使用任何cpu使用情况。

问题从哪里来?


这一切都取决于,监视cpu使用情况并不能告诉任何事情。 它可能是:

  • 你的循环中某处发生了死锁,也就是说每个实例都使用共享对象?
  • 通道出现故障(因为超时,异常等),执行无法通过。
  • 取决于每个WCF B实例的对象,它可能达到操作系统限制(例如:打开的文件数)
  • 从你的问题我猜你可能会发现调试服务很困难,你可以尝试以下方法:

  • 启用WCF日志记录,在SO或谷歌上有很多条目
  • 将调试器附加到您的服务中,如果您发现这会给您随机的入口点,您可以尝试在您的服务的OnStart重载时将Debugger.Launch()调用
  • 登录到您的电话号码所在的文件
  • 开始你的服务作为控制台应用
  • 希望这可以帮助。

    链接地址: http://www.djcxy.com/p/54933.html

    上一篇: multi instance of workflow wcf in memory

    下一篇: Service has zero application (non