c# - 如何通过编码创建多个端点?

标签 c# wcf c#-4.0

端点是在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)。有人有什么想法吗?

最佳答案

这将在主机上创建 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所说,你应该让ServiceHost处理并发,通过配置 ServiceBehavior关于您的实现。

但是,要获取托管端点的完整列表,请执行以下操作:

foreach (var e in host.Description.Endpoints)
{
    Console.WriteLine(e.Address);
}

关于c# - 如何通过编码创建多个端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15830670/

相关文章:

c# - 如何从工作线程中调用 UI 线程上的方法?

c# - 如何将已解析的实例从控制反转传递给应用程序中的类?

.net - InternalsVisibleTo 属性的问题

c# - 如何在类实例成员上设置编译时验证

c# - 您在 C# 中制作或看到过哪些非常有值(value)的流畅接口(interface)?他们有什么了不起?

c# - 如何设置一个具有两个外键的实体?

C# 在列表中添加委托(delegate)

c# - .Net Maui - 如何返回根页面

wcf - 检查 WCF 服务使用的 InstanceContextMode

wcf - WCF 服务和 Silverlight 应用程序之间的共享数据对象