WCF пытается выставить конечную точку nettcp;Код ошибки TCP 10061: Соединение не может быть установлено, потому что целевой компьютер активно отказался от него - PullRequest
3 голосов
/ 16 февраля 2011

Я не понимаю, в чем здесь проблема. Мой wsHttpBinding работает нормально. Вот моя конфигурация. Любая помощь наиболее ценится.

<?xml version="1.0"?>
<configuration>
  .....
  <system.serviceModel>
    <services>
      <service behaviorConfiguration="DataService.Service1Behavior"
               name="ODHdotNET.DataService">
        <endpoint 
               address="" 
               binding="wsHttpBinding" 
               bindingConfiguration="largeTransferwsHttpBinding"
               contract="ODHdotNET.IDataService">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint 
            address="net.tcp://139.149.141.221:8001/DataService.svc" 
            binding="netTcpBinding" 
            contract="ODHdotNET.IDataService"/>
        <endpoint 
            address="mex" 
            binding="mexHttpBinding" 
            contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://139.149.141.221:8000/DataService.svc" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <bindings>
      <wsHttpBinding>
        <binding name="largeTransferwsHttpBinding2" 
                 maxReceivedMessageSize="5000000" maxBufferPoolSize="5000000">
          <security mode ="Message">
            <message clientCredentialType="UserName"/>
          </security>
        </binding>
        <binding name="largeTransferwsHttpBinding" 
                 maxReceivedMessageSize="5000000" maxBufferPoolSize="5000000" />
      </wsHttpBinding>
     </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="DataService.Service1Behavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

изменить: я сам хостинг в службе Windows; Я не использую IIS.

Ответы [ 4 ]

2 голосов
/ 16 февраля 2011

Вы имеете в виду, что клиент WCF выдает эту ошибку? если так: пожалуйста, запустите следующую команду в командной строке: netstat -ona | найти "8001" если это возвращает данные, пожалуйста, отправьте это

1 голос
/ 16 февраля 2011

Вам необходимо добавить поддержку TCP в ваш IIS. Чтобы конкретно включить связь по TCP, MSMQ или по именованным каналам, выполните дополнительный шаг настройки поддержки соответствующего протокола. Для связи по протоколу TCP свяжите веб-сайт по умолчанию с портом net.tcp с помощью утилиты командной строки Appcmd. Appcmd - это утилита IIS, которая позволяет администрировать виртуальные сайты, каталоги, приложения и пулы приложений.

%windir%\system32\inetsrv\appcmd.exe set site "Default Web Site" -
+bindings.[protocol='net.tcp',bindingInformation='808:*']

Для поддержки других протоколов выполните дополнительные команды, которые включают эти протоколы для веб-сайта по умолчанию. На этом этапе вы настроили протокол net.tcp на уровне сайта.

%windir%\system32\inetsrv\appcmd.exe set app "Default Web Site/OrderServiceHost"
/enabledProtocols:http,net.tcp

Пожалуйста, посмотрите на них более подробно: Расширьте свои услуги WCF за пределы HTTP с помощью WAS

Размещение служб WCF в службе активации Windows

0 голосов
/ 11 апреля 2012

Убедитесь, что ваш хост работает, когда вы вызываете методы в клиентском приложении.

0 голосов
/ 16 февраля 2011

Убедитесь, что порт открыт в брандмауэре Windows

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...