Не удалось найти базовый адрес, соответствующий схеме net.tcp для конечной точки с привязкой NetTcpBinding. Зарегистрированные схемы базовых адресов: [http]

Я использую http для всего этого, и когда я работаю с net.tcp, и при добавлении ссылки я получаю сообщение об ошибке

Не удалось найти базовый адрес, соответствующий схеме net.tcp для конечной точки с привязкой NetTcpBinding. Зарегистрированные схемы базовых адресов: [http].

мой web.config

<?xml version="1.0"?>
<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <services>
      <service behaviorConfiguration="servicebehave" name="WcfServ.Service1">
        <endpoint address="" binding="netTcpBinding" 
          bindingConfiguration="" name="nettcp" contract="WcfServ.IService1" />

        <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
          name="mex" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="net.tcp://localhost:51560/Service1.svc" />
           <add baseAddress="http://localhost:8080/Service1.svc"/>
          </baseAddresses>
        </host>
      </service>
    </services>
    <bindings>
      <netTcpBinding>
        <binding name="netTcpBinding">
          <security mode="Transport" />
        </binding>
      </netTcpBinding>

    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="servicebehave">
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="false"/>
          <!-- 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="false"/>

        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="false" />
  </system.serviceModel>
 <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

</configuration>

Кто-нибудь может сказать мне, где я делаю не так?


person chandra sekhar    schedule 02.09.2013    source источник
comment
Какая у вас окружающая среда?   -  person Alex    schedule 02.09.2013
comment
IIS 6.0, но я не размещаю службу, когда я добавляю службу, я получаю сообщение об ошибке.   -  person chandra sekhar    schedule 02.09.2013


Ответы (2)


Вы не можете разместить net.tcp под IIS 6, он поддерживает только HTTP (s). Таким образом, вы ограничены только привязками HTTP (базовыми, WS или 2007). Для обеспечения net.tcp и других протоколов требуется WAS. Вы можете активировать его отдельно, но я советую вам устанавливать его как с IIS 7 (он устанавливается как его часть), потому что IIS 7 дополнительно предоставляет удобную платформу управления услугами.

Другое решение - это изменить среду размещения, чтобы сделать ее автономной или размещенной на сервере, используя экземпляр класса ServiceHost, который поддерживает протокол tcp.

person Alex    schedule 02.09.2013
comment
Возможно, ему следует назначить адрес конечной точке, а не пустую строку, изменяющую также baseAddress. - person Francesco De Lisi; 02.09.2013
comment
@FrancescoDeLisi Нет, это не обязательно. Две конечные точки могут иметь одинаковые относительные адреса, если они используют разные протоколы. Даже если они пустые - - person Alex; 02.09.2013
comment
Но я даже не размещаю эту услугу, я просто добавляю ссылку на клиента, поэтому я получаю сообщение об ошибке, как я могу от нее избавиться? - person chandra sekhar; 02.09.2013
comment
Что вы имеете в виду под термином хостинг? Когда вы пытаетесь добавить ссылку, предполагается, что служба где-то размещена. Когда вы пытаетесь получить информацию о точках MEX, IIS пытается запустить вашу службу, но не работает из-за net.tcp и возвращает вам вашу ошибку. - person Alex; 02.09.2013
comment
Итак, прежде всего я должен разместить службу, и я могу добавить ссылку на своего клиента? - person chandra sekhar; 02.09.2013
comment
Да, сначала вы должны разместить свою службу и убедиться, что она доступна, включив точку MEX и предложив адрес службы в любом вводе адреса браузера. - person Alex; 02.09.2013

Если вы хотите настроить службу wcf для net.tcp в IIS 7, обратитесь к этому ответу:

Базовый адрес службы WCF Http и netTcp

С Уважением

person cloud120    schedule 24.07.2014