WCF net.tcp соединение всегда терпит неудачу - PullRequest
2 голосов
/ 10 ноября 2011

Я попытался настроить сервис для тестирования с использованием привязки net.tcp.Я также установил конечную точку http.Конфигурация выглядит следующим образом:

  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="Inbound_REST">
          <webHttp />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="InboundHttpConfiguration">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
        <behavior name="InboundTcpConfiguration">
          <serviceMetadata httpGetEnabled="false" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
        <service behaviorConfiguration="InboundTcpConfiguration" name="Inbound">
          <endpoint address="" binding="netTcpBinding" contract="IContract">
            <identity>
              <dns value="localhost"/>
            </identity>
          </endpoint>
          <host>
            <baseAddresses>
              <add baseAddress="net.tcp://localhost:6969/Inbound" />
            </baseAddresses>
          </host>
        </service>
    </services>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    <client>
      <endpoint name="httpEndPoint" address="http://localhost:1568/Inbound.svc" binding="basicHttpBinding" contract="IContract" />
       <endpoint name="tcpEndPoint" address="net.tcp://localhost:6969/Inbound" binding="netTcpBinding" contract="IContract" />
    </client>
    <bindings>
      <basicHttpBinding>
        <binding name="httpbind">
          <security mode="Transport">
            <transport clientCredentialType="None"/>
          </security>
        </binding>
      </basicHttpBinding>
      <netTcpBinding>
        <binding name="tcpbind">
          <security mode="Transport">
            <transport clientCredentialType="None" />
          </security>
        </binding>
      </netTcpBinding>
    </bindings>
  </system.serviceModel>

Когда я пытаюсь использовать службу, используя привязку net.tcp, она всегда возвращает мне ошибку:

Не удалось подключиться к сети.tcp: // локальный: 6969 / Inbound.Попытка подключения продолжалась в течение промежутка времени 00: 00: 00.9531494.Код ошибки TCP 10061: не удалось установить соединение, поскольку целевая машина активно отказывала в этом. 127.0.0.1:6969.

Кстати, привязка http работает нормально.Я думаю, что это может быть какая-то конфигурация машины, но не смог найти причину.

Ответы [ 3 ]

3 голосов
/ 11 ноября 2011

Если вы пытаетесь запустить службу WCF через Visual Studio, netTcpBinding не поддерживается. Извините!

Проверьте этот пост для более подробного объяснения.

0 голосов
/ 10 ноября 2011

Какой хостинг вы используете .. IIS7 или консоль или другие?

1) Проверьте, все ли службы tcp запущены в services.msc

2) Отключите брандмауэр или добавьте брандмауэрисключение для вашего tcp порта

, если вы используете хостинг в iis7, проверьте эту ссылку

Поддержка IIS7 для не HTTP-протоколов

0 голосов
/ 10 ноября 2011

Почему вы пропустили ".svc" для адреса net.tcp для клиента? Может быть, это должно быть "net.tcp: // localhost: 6969 / Inbound.svc"

...