WCF Сервис netTCPbinding - PullRequest
       10

WCF Сервис netTCPbinding

8 голосов
/ 31 августа 2009

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

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

Как это можно решить?

<services>
  <service name="DXDirectory.DXDirectoryService" behaviorConfiguration="DXDirectory.Service1Behavior">
    <!-- Service Endpoints -->
    <endpoint address="" binding="netTcpBinding" bindingConfiguration="WindowsSecured" contract="DXDirectory.IDXDirectoryService">
      <!-- 
          Upon deployment, the following identity element should be removed or replaced to reflect the 
          identity under which the deployed service runs.  If removed, WCF will infer an appropriate identity 
          automatically.
      -->
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://localhost:2582/DXDirectoryService" />
      </baseAddresses>
    </host>

  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="DXDirectory.Service1Behavior">
      <!-- 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" />
      <serviceAuthorization principalPermissionMode="UseWindowsGroups" />
      <!--<serviceCredentials>-->
        <!--<userNameAuthentication userNamePasswordValidationMode="Custom"
                                membershipProviderName="CustomUserNameValidator"/>-->
      <!--</serviceCredentials>-->
    </behavior>
  </serviceBehaviors>
</behaviors>

Ответы [ 3 ]

5 голосов
/ 31 августа 2009

HMm ... вы добавили базовый адрес в раздел служб / хоста.

Быстрый вопрос: вы хостинг или хостинг в IIS ?? Какая версия IIS ??

IIS5 / 6 поддерживает только HTTP-соединения - вы не можете разместить NetTCP в IIS 5/6.

В IIS7 вам нужно вручную выполнить серию шагов, чтобы включить привязки не HTTP, но это возможно. См. эту статью MSDN о том, как этого добиться.

Самостоятельный хостинг - это лучший вариант - вы получаете все привязки и полностью контролируете работу своего сервиса.

Марк

4 голосов
/ 31 августа 2009

Вот базовый пример NetTcpBinding из msdn. Посмотрите, может ли это вам помочь.

EDIT:

И здесь является связанным вопросом SO.

0 голосов
/ 01 сентября 2009

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

<netTcpBinding>

 <binding name="WindowsSecured">
 <security mode="none"/> 
 </binding> 

</netTcpBinding>

...