2009-04-14 22 views
4

私は6つの異なるサービスを必要とする分散アプリケーションを構築しています。 Visual Studio 2008を使用して私のXPラップトップでアプリケーションをデモする必要があります。WCFでnet.pipeで複数のサービスを実行

net.pipeを使用して、同時に複数のサービスをローカルホスト上で同時に実行することはできますか?例えば

net.pipe://localhost/DirectoryService 
net.pipe://localhost/MathService 

ない場合は、IIS/webdevサーバーを使用せずにこれらのWCFサービスをホストする他の方法がありますか? net.tcp?他に何か?

答えて

8

はい、バインディングアドレスを指定することは一意です。表示された2つの例は、net.pipeバインディングで正常に動作します。

net.pipeバインディングは、ローカルマシンでのみ機能することに注意してください。リモートマシンからサービスにアクセスできるようにするには、net.tcpなどの別のバインディングを使用する必要があります。つまり、他のバインディングよりも効率的であるため、サービスがローカルホスト上で実行されている場合は、が推奨するのバインドが使用されています。

2

IISを使用せずにHTTPをサービスエンドポイントとして使用するには、ServiceHostクラスを参照してください。それが私がローカルのWCFテスティングに使用しているもので、とてもうまく動作します。

8

net.pipeアドレスについてもう一つ知っておくべきことは、URLではなくURNを提供していることです。 net.pipeはメモリ内の実装で、指定する "アドレス"は何でもかまいません。

net.pipe://IHateCats 
net.pipe://NamedPipes/Are/Fast 

これらは、他の要素に関係なくすべて動作します。これは、その名前付きパイプの一意の識別子です。ネットワークスタックは、この形式の通信には関係していません。

関連する問題