2

エンドポイントは以下のように app.config に作成されますが、異なるアドレスを持つ複数のエンドポイントを作成するにはどうすればよいですか?

app.config :

 <service name="PokerService.PlayerService" behaviorConfiguration="ServiceBehaviorPlayer">
    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://localhost:5054" />
      </baseAddresses>
    </host>
    <!-- Service Endpoints -->
    <endpoint address="player" binding="netTcpBinding" bindingConfiguration="PlayerBinding" contract="PokerService.IPlayerService" />
    <endpoint address="player/mex" binding="mexTcpBinding" name="ServiceBehaviorPlayer" contract="IMetadataExchange" />
  </service>
</services>

しかし、どうすればこのように生成できTcp//localhost/player/1 ( 1-1000)ますか?

4

1 に答える 1

2

これにより、ホストに 1000 個のエンドポイントが作成されます。

var host = new ServiceHost(typeof(PokerService.PlayerService));
 for(int i = 1; i <= 1000; i++)
 {
   host.AddServiceEndpoint(typeof(PokerService.IPlayerService), 
                                  new NetTcpBinding(),
                                  @"net.tcp://localhost:5054/player/"+i);
 }
 host.Open();

編集

私は@JanWに同意します-このアプローチはludacrisです-そして@JanWが言うように、実装でServiceBehaviorを構成することにより、ServiceHostに同時実行性を処理させる必要があります。

ただし、ホストされているエンドポイントの完全なリストを取得するには、次のようにします。

foreach (var e in host.Description.Endpoints)
{
    Console.WriteLine(e.Address);
}
于 2013-04-05T09:57:56.507 に答える