2009-08-31 3 views
8

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

Could not find a base address that matches scheme net.tcp for the endpoint with binding NetTcpBinding. Registered base address schemes are [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> 
+0

Хотите знать гораздо больше о NetTcpBinding в WCF ... посещения эта ссылка у него много информации .. http://www.planetofcoders.com/nettcpbinding-in-wcf/ –

ответ

5

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

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

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

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

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

Марк

+0

Я использую самостоятельный хостинг и IIS 7 –

+0

Итак rry Marc, я использую IIS 5.1 –

+0

Как я уже упоминал - IIS5 будет * не * работать с привязкой NetTCP - в этом случае вам нужно будет использовать самостоятельный хостинг. У вас тоже такая же ошибка в самообслуживании? –

4

Вот NetTcpBinding основной пример из MSDN. Посмотрите, поможет ли это вам.

EDIT:

И here это родственный SO вопрос.

0

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

<netTcpBinding> 

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

</netTcpBinding> 

Смежные вопросы