Как отладить привязку wcf nettcp

#wcf #nettcpbinding

Вопрос:

Я борюсь с отладкой nettcpbinding с помощью wcf. Я знаю, что для httpbinding после добавления конечной точки mex и поведения мы можем сначала проверить в браузере, работает ли служба. Но для nettcp, похоже, нет такого прямого способа проверить, работает ли служба или нет.

У меня есть следующая конфигурация, и оказалось, что я все еще могу использовать браузер для открытия URI http://localhost:8090/MagicEightBallService. Но для привязки httpbinding нет определения конечной точки. Это почему? Переводит ли WCF конечную точку netTcpBiding в конечную точку httpbiding за сценой?

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
  <system.serviceModel>
    <services>
      <service name ="MagicEightBallServiceLib.MagicEightBallService"
               behaviorConfiguration="EightBallServiceMEXBehavior">
        <endpoint address=""
                  binding="netTcpBinding"
                  contract="MagicEightBallServiceLib.IEightBall"/>
    <endpoint address="mex"
              binding="mexHttpBinding"
              contract="IMetadataExchange"/>
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8090/MagicEightBallService"/>
        <add baseAddress="net.tcp://localhost:8091/MagicEightBallService"/>
      </baseAddresses>
    </host>
  </service>
</services>
<bindings>
  <basicHttpBinding>
    <binding openTimeout="00:00:30"/>
  </basicHttpBinding>
  <netTcpBinding>
    <binding closeTimeout="00:00:15"/>
  </netTcpBinding>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior name="EightBallServiceMEXBehavior">
      <serviceMetadata httpGetEnabled="true"/>
    </behavior>
    <behavior>
    </behavior>
  </serviceBehaviors>
</behaviors>
  </system.serviceModel>
</configuration>
 

Комментарии:

1. Вы можете посмотреть на ограничения при отладке WCF