3

WPF Windows アプリケーションのバックグラウンドで WCF 名前付きパイプ サービスをどのように実行しますか? WPF アプリケーション内で WCF サーバーを実行するサンプルが見つからないようです。

何か案は?

現在、Application_Startup で次のコードを使用しています。これは独自のスレッドで実行する必要がありますか?

    Using Host As ServiceModel.ServiceHost = New ServiceModel.ServiceHost(GetType(Service), New Uri(("net.pipe://localhost")))
        '
        Host.AddServiceEndpoint(GetType(IService), New ServiceModel.NetNamedPipeBinding, "Test")
        Host.Open()
        '
    End Using
4

2 に答える 2

2

Juval Lowyは、ServiceModelExライブラリでヘルパークラスを提供し、WCFコンポーネントをインプロセスで実行する方法に関する情報を提供します。これは、コンポーネントを必要とする名前付きパイプを使用するため、おそらくWCFコンポーネントで実行することになるでしょう。 WPFアプリと同じマシンで実行する必要があります。

JuvalLowyによる「 ProgrammingWCFServices」の第2版の60ページから始まるInProcFactoryクラスについて読むことをお勧めします。これは本質的にWCFの「聖書」です。

これにより、ヘルパークラスを使用してコンポーネントを処理中にホストする方法が正確に示されます。

于 2009-06-22T15:05:30.457 に答える
0

Using コード ブロックを削除し、ServiceHost を WPF Application クラス内のプライベート変数として設定しました。次に、アプリケーションの終了時に ServiceHost を閉じます。うまくいくようです。

于 2010-01-22T05:09:43.877 に答える