调用 Process.从 WCF 开始后重新启动自承载 WCF

本文关键字:WCF 重新启动 开始 Process 调用 | 更新日期: 2023-09-27 17:55:32

我需要从 WCF 服务(自承载)启动进程。我已经通过使用Process.Start()方法完成了它。然后我尝试重新启动我的 WCF 服务,但它失败了,因为它的地址已被使用(但旧进程不存在)。此问题与 https://superuser.com/questions/215351/how-do-i-kill-a-process-that-is-dead-but-listening 类似,确切的问题与从 WCF 服务打开的进程(它们保持 TCP 连接打开)相关。有没有办法在不重新启动从此服务启动的进程的情况下重新启动 WCF 服务?

调用 Process.从 WCF 开始后重新启动自承载 WCF

我发现只有一种方法可以安全地从WCF服务启动进程。我创建了一个代理进程,该进程正在启动另一个进程,而不是直接启动指定的进程,首先我启动 ProcessStarter.exe该进程反过来启动指定的进程,然后关闭。我无法解释Windows行为,但在这种情况下,WCF服务创建的所有TCP连接都将关闭。