2012-07-10 19 views
7

Sono nuovo a WCF e IIS, ma ho fatto qualche lettura su come ospitare un'applicazione WCF in IIS. Abbiamo un sistema che stiamo cercando di implementare su IIS che ha bisogno degli endpoint HTTP e NET.TCP. Ho tutto configurato come ho visto in tutorial casuali, ma non riesco ancora a connettermi dal mio client. Qualsiasi aiuto con la configurazione sarebbe molto apprezzato!NET TCP/HTTP WCF ospitato in IIS

file di My EdWCF.svc nella mia directory WCF:

< %@ ServiceHost Language="C#" Debug="true" Service="TwoFour.WCF.Engine.EdWCF" % > 

mio Web.config:

<?xml version="1.0"?> 
<configuration> 
<system.serviceModel> 

    <behaviors> 
     <serviceBehaviors> 
     <behavior name="MyBehaviour"> 
      <serviceMetadata HttpGetEnabled="True" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

<service name="TwoFour.WCF.Engine.EdWCF" behaviorConfiguration="MyBehaviour"> 
     <host> 
      <baseAddresses> 
      <add baseAddress="net.tcp://localhost:12345/WCF/EdWCF.svc"/> 
      </baseAddresses> 
     </host> 
     <endpoint address="" 
       binding="netTcpBinding" 
       bindingConfiguration="InsecureTcp" 
       contract="TwoFour.WCF.Interface.Shared.IEdWCF" /> 
     <endpoint address="mexhttp" binding="mexHttpBinding" contract="IMetadataExchange"/> 
</service> 

    <bindings> 
      <netTcpBinding> 
       <binding name="InsecureTcp" portSharingEnabled="true"> 
        <security mode="None" /> 
       </binding> 
      </netTcpBinding> 
     </bindings> 

</system.serviceModel> 

</configuration> 

Grazie per qualsiasi aiuto o suggerimenti!

risposta

13
  1. In IIS aggiungere net.tcp vincolante nella lista dei protocolli abilitati (Sito Web Mange -> Impostazioni avanzate -> Protocolli abilitati)

  2. Nel sito di legame aggiungere net.tcp vincolante (Modifica Binding -> Aggiungi -> Scegli il tipo di net.tcp e aggiungere la porta 12345 come questo: *)

È inoltre necessario specificare l'indirizzo di base nella configurazione:

<system.serviceModel> 
<services> 
    <host> 
     <baseAddresses> 
     <add baseAddress="net.tcp://server:12345/ServiceAddress.svc"/> 
     </baseAddresses> 
    </host> 
    ... 
</service> 
    ... 
</system.serviceModel> 

Edit:

provare questo

<system.serviceModel> 

    <behaviors> 
     <serviceBehaviors> 
     <behavior name="MyBehaviour"> 
      <serviceMetadata /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

<service name="TwoFour.WCF.Engine.EdWCF" behaviorConfiguration="MyBehaviour"> 
     <host> 
      <baseAddresses> 
      <add baseAddress="net.tcp://localhost:12345/WCF/EdWCF.svc"/> 
      </baseAddresses> 
     </host> 
     <endpoint address="" 
       binding="netTcpBinding" 
       bindingConfiguration="InsecureTcp" 
       contract="TwoFour.WCF.Interface.Shared.IEdWCF" /> 
     <endpoint address="mextcp" binding="mexTcpBinding" contract="IMetadataExchange"/> 
</service> 

    <bindings> 
      <netTcpBinding> 
       <binding name="InsecureTcp" portSharingEnabled="true"> 
        <security mode="None" /> 
       </binding> 
      </netTcpBinding> 
     </bindings> 

</system.serviceModel> 
+0

Grazie per la risposta rapida. Ho già attivato i binding e ho appena aggiunto l'indirizzo di base host al mio file di configurazione in cui baseAddress = "net.tcp: // localhost: 12345/EdWCF.svc" - non è ancora in grado di connettersi. –

+0

È necessario aggiungere l'indirizzo completo. Se EdWCF.svc si trova nella cartella del motore, cambiarlo in net.tcp: // localhost: 12345/Engine/EdWCF.svc –

+0

Ho il percorso fisico della mia applicazione IIS impostato su C: \ User \ WCF \ WCF che è dove EdWCF Il file .svc si trova. Ho regolato l'indirizzo di base per avere net.tcp: // localhost: 12345/WCF/EdWCF.svc ma quando provo a connettermi dal nostro client ottengo ancora: Impossibile connettermi a net.tcp: // localhost: 12345/WCF /EdWCF.svc. Il tentativo di connessione è durato per un periodo di 00: 00: 02.0052005. Codice di errore TCP 10061: non è stato possibile effettuare alcuna connessione poiché la macchina di destinazione lo ha rifiutato attivamente 127.0.0.1:12345. –

Problemi correlati