2013-01-24 24 views
0

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

回答

0

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