如果我的应用程序启动,我首先检查是否已经存在应用程序的实例,如果是,我将焦点放在正在运行的实例上并终止新创建的进程。我使用通过 WCF 注册的命名管道来实现这一点。到目前为止效果很好。
现在我的应用程序也将在终端服务器环境中使用。命名管道是系统范围的是否正确,因此我必须更改启动逻辑以不将重点放在其他用户的实例上(当然不会工作但会破坏我的应用程序)或者终端服务器(2003R2)是否隔离 WCF-Bindings每个 TS 会话?
我还无法访问生产环境,这就是我发布这个问题的原因。也许有人可以给我这个问题的答案?
更新
通过我写的关于应用程序启动的另一篇文章,我了解到有一种更方便的方法可以使用 Mutex 来管理单个应用程序启动,它可以在系统范围内或在终端会话基础上使用。
然而,这个问题无论如何都是开放的,也许具有良好 WCF 知识的人可以回答它。这会很有趣。