MiniGoel2017 Ответов: 1

Проблемы с хостинг служб WCF в IIS (использования) на значение nettcp привязки?


Я создал простую службу WCF и разместил ее в IIS, создав новый веб-сайт. В файле Web. config я предоставляю привязки для http и net tcp. Я создал консольный клиент и добавил ссылку на службу. Он генерирует две привязки в конфигурации клиента - для http и для tcp. Когда я пытаюсь вызвать службу с помощью tcp, я получаю эту ошибку -

Необработанное исключение типа ' System.Сервис-модель.EndpointNotFoundException ' произошло в mscorlib.dll дополнительная информация: в net.tcp://computername/Service.svc не было конечной точки, прослушивающей это сообщение. Это часто вызвано неправильным адресом или действием SOAP.

когда я запускаю с помощью HTTP endpoint(означает, что я использую http endpoints в своем клиенте), он работает нормально.

Мой веб-сайт Web.config файл выглядит следующим образом

<system.serviceModel>
<bindings>
  <netTcpBinding>
    <binding name="NewBinding0" portSharingEnabled="true">
      <security mode="None"  />
    </binding>
  </netTcpBinding>
</bindings>
<services>
  <service behaviorConfiguration="My" name="WCFServiceOM.Service1"> <!--  the service name must match the configuration name for the service implementation. -->
    <endpoint address="" binding="basicHttpBinding" contract="WCFServiceOM.IService1"/>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    <endpoint  binding="netTcpBinding" bindingConfiguration="NewBinding0" contract="WCFServiceOM.IService1" />
    <endpoint address="mexOM" binding="mexTcpBinding" contract="IMetadataExchange"/>
    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://localhost:8087/Service1" />
        <add baseAddress="http://localhost:7777/Service1"/>
      </baseAddresses>
    </host>
  </service>
</services>
<behaviors>
  <endpointBehaviors>
    <behavior name="webBehanior">
      <webHttp/>
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="My">
      <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
      <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
      <serviceDebug includeExceptionDetailInFaults="true"/>
    </behavior>
  </serviceBehaviors>
</behaviors>


И мой клиент App. Config выглядит так

<configuration>
<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
</startup>
<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IService1" />
        </basicHttpBinding>
        <netTcpBinding>
            <binding name="NetTcpBinding_IService1">
                <security mode="None" />
            </binding>
        </netTcpBinding>
    </bindings>
    <client>
        <endpoint address="http://computername:7777/Service.svc"
            binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService1"
            contract="ServiceReference1.IService1" name="BasicHttpBinding_IService1" />
        <endpoint address="net.tcp://computername/Service.svc" binding="netTcpBinding"
            bindingConfiguration="NetTcpBinding_IService1" contract="ServiceReference1.IService1"
            name="NetTcpBinding_IService1" />
    </client>
</system.serviceModel>


пожалуйста помочь. Заранее большое вам спасибо

Что я уже пробовал:

Я использую ОС Windows 10, установлены IIS 10.0 и WPAS\WAS (служба активации процессов Windows). Я уже включил\проверил активацию HTTP, активацию TCP .Net framework в функциях Windows. И измененные параметры сервера IIS для включения сетевого протокола TCP.

Richard Deeming

Если вы размещаете сервер в IIS, номер порта в конфигурационном файле игнорируется. Клиент должен подключиться, используя номер порта, настроенный в привязках IIS для сайта.

londhess

в конфигурации вашего клиента я не вижу номера порта при привязке tcp.
в <адрес конечной точки="нет.протокол TCP://имя_компьютера:8087/услуг.ВПВ" привязки="привязки nettcpbinding"
bindingconfiguration="NetTcpBinding_IService1" contract= " ServiceReference1.Файл iservice1"
имя="NetTcpBinding_IService1" /&ГТ;

1 Ответов

Рейтинг:
10

sputcha

Пожалуйста, обратитесь к нижеприведенному URL-адресу и дайте мне знать, что он работает.


[Настройка сетевого TCP]