2009-08-31 6 views
8

Desidero utilizzare netTCPbinding, quindi ho modificato la mia configurazione web come di seguito. Sto riscontrando questo errore:Servizio WCF netTCPbinding

Could not find a base address that matches scheme net.tcp for the endpoint with binding NetTcpBinding. Registered base address schemes are [http].

Come può essere risolto?

<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

Volete sapere molto di più su NetTcpBinding in WCF ... Visita questo link ha molte informazioni .. http://www.planetofcoders.com/nettcpbinding-in-wcf/ –

risposta

5

HMm ... hai aggiunto l'indirizzo di base alla sezione servizi/host ok.

Domanda veloce: sei self-hosting o hosting in IIS ?? Quale versione di IIS ??

IIS5/6 supporta solo le connessioni HTTP: non è possibile ospitare un NetTCP in IIS 5/6.

In IIS7, è necessario eseguire manualmente una serie di passaggi per abilitare i collegamenti non HTTP, ma è possibile. Vedi this MSDN article su come ottenere ciò.

L'auto-hosting è l'opzione migliore: si ottengono tutti i binding e si ha il totale controllo del servizio in hosting.

Marc

+0

Sto usando l'auto hosting e IIS 7 –

+0

Quindi rry Marc, sto usando IIS 5.1 –

+0

Come ho già detto - IIS5 * non * funzionerà con l'associazione NetTCP - in questo caso dovrai utilizzare l'auto hosting. Hai lo stesso errore anche nell'hosting automatico? –

4

Ecco un esempio di base NetTcpBinding da MSDN. Vedi se questo ti può aiutare.

EDIT:

E here è una correlata domanda SO.

0

Non posso vedere la sezione nel file di configurazione, si può e si prega di prega di aggiungere questo

<netTcpBinding> 

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

</netTcpBinding>