方法 : ポート共有を使用するように Windows Communication Foundation サービスを構成する
Windows Communication Foundation (WCF) アプリケーションで net.tcp:// ポート共有を使用する最も簡単な方法は、NetTcpBinding を使用してサービスを公開することです。
このバインディングは、PortSharingEnabled プロパティを提供します。このプロパティは、このバインディングを使用して構成されるサービスに対して net.tcp:// ポート共有を有効にするかどうかを制御します。
以下の手順では、NetTcpBinding クラスを使用して URI (Uniform Resource Identifier)、net.tcp://localhost/MyService にあるエンドポイントを開く方法を示します。最初にコードを使用する場合の手順を示し、次に構成要素を使用する場合の手順を示します。
コードで NetTcpBinding の net.tcp:// ポート共有を有効にするには
IMyService という名前のコントラクトを実装するサービスを作成し、MyService という名前を付けます。
NetTcpBinding クラスのインスタンスを作成し、PortSharingEnabled プロパティを true に設定します。
ServiceHost を作成し、ポート共有を有効にした NetTcpBinding を使用し、エンドポイント アドレス URI "net.tcp://localhost/MyService" をリッスンする MyService のサービス エンドポイントを追加します。
メモ : このエンドポイント アドレス URI は異なるポート番号を指定しないため、この例では既定の TCP ポートである 808 を使用します。トランスポート バインディングでポート共有が明示的に有効になっているため、このサービスはポート 808 を他のプロセスの他のサービスと共有できます。ポート共有が許可されておらず、既に別のアプリケーションがポート 808 を使用している場合は、このサービスを開こうとすると AddressAlreadyInUseException がスローされます。
構成で NetTcpBinding の net.tcp:// ポート共有を有効にするには
- 次の例では、構成要素を使用してポート共有を有効にし、サービス エンドポイントを追加します。
<system.serviceModel>
<bindings>
<netTcpBinding name="portSharingBinding"
portSharingEnabled="true" />
<services>
<service name="MyService">
<endpoint address="net.tcp://localhost/MyService"
binding="netTcpBinding"
contract="IMyService"
bindingConfiguration="portSharingBinding" />
</service>
</services>
</system.serviceModel>