9

アプリケーションが起動する場合は、最初にアプリのインスタンスがすでに存在するかどうかを確認し、存在する場合は、実行中のインスタンスにフォーカスを移して、新しく作成されたプロセスを終了します。これは、WCFを介して登録されている名前付きパイプを使用して作成します。これまでのところ問題なく動作します。

これで、私のアプリはターミナルサーバー環境でも使用されます。名前付きパイプがシステム全体であるため、他のユーザーのインスタンスに焦点を当てないようにスタートアップロジックを変更する必要がありますか(確かに機能しませんが、アプリケーションが壊れます)、またはターミナルサーバー(2003R2)がWCFバインディングを分離しますか?各TSセッション?

まだ生産的な環境にアクセスできないので、この質問を投稿します。多分誰かが私にこの質問への答えを与えることができますか?

アップデート

アプリの起動に関する別の投稿を通じて、Mutexを使用して単一のアプリケーションの起動を管理するより便利な方法があることを学びました。これは、システム全体またはターミナルセッションベースで使用できます。

しかし、質問はとにかく開かれており、おそらくWCFの知識が豊富な人が答えることができます。面白そうですね。

4

2 に答える 2

9

名前付きパイプはシステム全体です。他のカーネル オブジェクト タイプにあるような「グローバル」または「ローカル」プレフィックスはありません。

これは、名前付きパイプがネットワーク リソースの一部として使用されるためですmyComputer\pipename。"グローバル" および "ローカル" プレフィックス (イベント、セマフォ、ミューテックス、タイマー、ファイル マッピング、およびジョブ) を取得するオブジェクトは、コンピューターにスコープされ、別のコンピューターからアクセスすることはできません。

于 2010-07-09T15:58:00.217 に答える