2012-07-10 10 views
7

Ich bin neu in WCF und IIS, habe aber einige Informationen zum Hosten einer WCF-Anwendung in IIS. Wir haben ein System, das wir für IIS bereitstellen möchten, das HTTP- und NET.TCP-Endpunkte benötigt. Ich habe alles so konfiguriert, wie ich es in zufälligen Tutorials gesehen habe, aber ich kann immer noch keine Verbindung von meinem Client herstellen. Jede Hilfe bei der Konfiguration würde sehr geschätzt werden!NET TCP/HTTP WCF in IIS gehostet

Meine EdWCF.svc Datei in meinem WCF-Verzeichnis:

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

Mein 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> 

Vielen Dank für jede Hilfe oder Anregungen!

Antwort

13
  1. In IIS hinzufügen net.tcp in aktivierten Protokollen Liste Bindung (Mange Web-Site -> Erweiterte Einstellungen -> Aktivierte Protokolle)

  2. In Site-Bindung hinzufügen net.tcp Bindung (Edit-Bindung -> hinzufügen -> Typ wählen als net.tcp und fügen Sie Port wie dieses 12345: *)

Sie müssen auch Basisadresse in der Config angeben:

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

Edit:

testen

<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

Vielen Dank für die schnelle Antwort. Ich hatte bereits die Bindungen aktiviert, und ich habe gerade die Host-Basis-Adresse meiner Config-Datei hinzugefügt, wo die BaseAddress = "net.tcp: // localhost: 12345/EdWCF.svc" - immer noch nicht in der Lage zu verbinden. –

+0

Sie müssen die vollständige Adresse hinzufügen. Wenn EdWCF.svc im Engine-Ordner ist, ändern Sie es in net.tcp: // localhost: 12345/Engine/EdWCF.svc –

+0

Ich habe den physischen Pfad meiner IIS-Anwendung auf C: \ User \ WCF \ WCF gesetzt, das ist die EdWCF .svc-Datei befindet sich. Ich habe die Basisadresse angepasst, um net.tcp: // localhost: 12345/WCF/EdWCF.svc zu haben, aber wenn ich versuche, eine Verbindung von unserem Client herzustellen, bekomme ich immer noch: Konnte keine Verbindung zu net.tcp: // localhost: 12345/WCF herstellen /EdWCF.svc. Der Verbindungsversuch dauerte eine Zeitspanne von 00: 00: 02.0052005. TCP-Fehlercode 10061: Es konnte keine Verbindung hergestellt werden, da der Zielcomputer 127.0.0.1:12345 aktiv abgelehnt hat. –

Verwandte Themen