Ошибка связи WCF net.tcp

Я создал службу WCF с привязкой net.tcp и смог добавить к ней ссылку на службу в своем консольном приложении без ошибок.

После этого я пытаюсь самостоятельно разместить эту службу в своем консольном приложении. Хост службы открывается, но когда я вызываю метод в службе с объектом ссылки на службу, я получаю это исключение

«Не удалось подключиться к net.tcp://localhost/Design_Time_Addresses/MyWCFServiceLibrary/Service2/. Попытка подключения длилась в течение промежутка времени 00:00:02.0800000. Код ошибки TCP 10061: не удалось установить соединение, так как целевая машина отказалась от него [::1]:808».

Это мой код файла cs

Main method()

 Service2Client sc2 = new Service2Client();
                Uri baseaddress = new Uri("net.tcp://localhost:8732/Design_Time_Addresses/MyWCFServiceLibrary/Service2/");

                ServiceHost serviceHost = new ServiceHost(typeof(Service2Client), baseaddress);

                serviceHost.Open();

                Console.WriteLine(sc2.GetData(124)); --> exception comes at this point

                Console.ReadLine();

Это app.config в консольном приложении.

<system.serviceModel>
    <client>
      <endpoint address="net.tcp://localhost/Design_Time_Addresses/MyWCFServiceLibrary/Service2/"
        binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IService2"
        contract="ServiceReference2.IService2" name="NetTcpBinding_IService2">
        <identity>
          <dns value="localhost" />
        </identity>
      </endpoint>
    </client>
    <bindings>
      <netTcpBinding>
        <binding name="NetTcpBinding_IService2" closeTimeout="00:01:00"
          openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
          transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
          hostNameComparisonMode="StrongWildcard" listenBacklog="10" maxBufferPoolSize="524288"
          maxBufferSize="65536" maxConnections="10" maxReceivedMessageSize="65536">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <reliableSession ordered="true" inactivityTimeout="00:10:00"
            enabled="false" />
          <security mode="None">
            <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
            <message clientCredentialType="Windows" />
          </security>
        </binding>
      </netTcpBinding>
    </bindings>
    <!--<client>
      <endpoint address="net.tcp://localhost:8732/Design_Time_Addresses/MyWCFServiceLibrary/Service2/"
        binding="netTcpBinding" bindingConfiguration="NewBinding0" contract="MyWCFServiceLibrary.IService2"
        name="endpointClient" />
      <endpoint address="net.tcp://localhost/Design_Time_Addresses/MyWCFServiceLibrary/Service2/"
        binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IService2"
        contract="ServiceReference2.IService2" name="NetTcpBinding_IService2">
        <identity>
          <dns value="localhost" />
        </identity>
      </endpoint>
    </client>-->
  </system.serviceModel>

Окружающая среда: Vs2010

Может ли кто-нибудь помочь мне в этом.


person user1403505    schedule 18.05.2012    source источник
comment
Конфигурация вашего клиента имеет URL-адрес net.tcp://localhost/Design_Time_Addresses/MyWCFServiceLibrary/Service2/, тогда как ваша служба находится на net.tcp://localhost:8732/Design_Time_Addresses/MyWCFServiceLibrary/Service2/. Номер ПОРТА отсутствует   -  person Rajesh    schedule 18.05.2012


Ответы (3)


Возможно, что:

1) брандмауэр блокирует запрос. Проверьте это.

2) убедитесь, что

  • Адаптер прослушивателя Net.Tcp;
  • Служба совместного использования портов Net.Tcp

работают (службы Windows)

person serge.karalenka    schedule 18.05.2012
comment
Привет, я думаю, что это может быть не проблема, так как служба является локальной для моей машины. - person user1403505; 18.05.2012
comment
В какой ОС вы запускаете свое приложение? - person serge.karalenka; 18.05.2012
comment
Извините, нет под рукой... Поищите где-нибудь в Административных инструментах - person serge.karalenka; 18.05.2012
comment
Также проверьте услуги, которые я добавил в свой ответ. - person serge.karalenka; 18.05.2012
comment
любое предложение по этому поводу, пожалуйста - person user1403505; 18.05.2012

Ваша конфигурация клиента имеет URL-адрес как

net.tcp://localhost/Design_Time_Addresses/MyWCFServiceLibrary/Service2/

в то время как ваш сервис включен

net.tcp://localhost:8732/Design_Time_Addresses/MyWCFServiceLibrary/Service2/

Номер ПОРТА отсутствует в app.config элемента конечной точки клиента консольного приложения.

person Rajesh    schedule 18.05.2012

Причин может быть несколько, так как другие ответы могут решить проблему. Но в моем случае проблема решилась после установки отложенного обновления Windows.

person umer    schedule 15.06.2021