• 28. Mai 2011
  • WCF

WCF und Port-Sharing bei netTcpBinding

Bei der Entwicklung von Produkten erscheint es wünschenswert, die Anzahl der benötigten TCP-Ports niedrig zu halten, zumal diese auf eventuellen inner- oder zwischenbetrieblichen Firewalls freigeschaltet werden müssen. Aus diesem Grund bietet WCF die Möglichkeit, verschiedene Services über denselben TCP-Port zur Verfügung zu stellen. Voraussetzung dafür ist, dass sich die einzelnen Service-URLs unterscheiden, dass Port-Sharing für das netTcpBinding aktiviert wird und dass der Windows-Service Net.Tcp Port Sharing Service gestartet ist.
Das nachfolgende Listing zeigt eine Konfiguration, die den Einsatz von Port-Sharing vorsieht. Dazu wurde in der Standard-Binding-Konfiguration für netTcpBinding die Eigenschaft portSharingEnabled auf true gesetzt und als Basisadresse net.tcp://localhost:9000/FlugBuchungsService definiert. Ein anderer Service-Host könnte nun ebenfalls Port 9000 verwenden, sofern er sich auf eine andere Service-Url abstützt (zum Beispiel net.tcp://localhost:9000/HotelService und ebenfalls Port-Sharing aktiviert.

Bei Betrachtung dieser Konfiguration fällt auf, dass für die Konfiguration von Metadata-Exchange ebenfalls das netTcpBinding und nicht das dafür vorgesehene mexTcpBinding herangezogen wurde. Das ist notwendig, um Probleme im Zusammenhang mit letzterem Binding beim Einsatz von Port-Sharing zu vermeiden.
<system.serviceModel>

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

    <services>
    
      <service name="FlugService.FlugBuchungsService">

        <endpoint
          address=""
          binding="netTcpBinding"
          contract="FlugService.IFlugBuchungsService" />

        <endpoint
          address="mex"
          binding="netTcpBinding"
          contract="IMetadataExchange" />

        <host>
          <baseAddresses>
            <add baseAddress="net.tcp://localhost:9000/FlugBuchungsService" />
          </baseAddresses>
        </host>

      </service>
    </services>

    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="false"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>


  </system.serviceModel>

 

 
Sie wollen mehr zum Thema WCF und Port-Sharing bei netTcpBinding wissen? Hier können Sie eine Anfrage für eine unverbindliche Schulung ode Beratung bzw. einen Workshop erstellen.
 
Unverbindliche Anfrage
 
 

Schulung und Beratung

Angular 2

Datenbindung, Formulare, Validierung, Routing, HTTP, Komponenten, ...

Details

Migration auf Angular 2

Bestehende Projekte auf Angular 2 migrieren, ngUpgrade, ...

Details

Angular 2: Deep Dive

Erweiterte Aspekte von Angular 2

Details

Progressive Web-Apps mit Angular 2

InHouse-Schulung und/oder Beratung maßgeschneidert für Ihre Lernziele

Details

Angular 2 Review

Feedback und klärung offener Fragen, weiterführende Themen

Details

Angular 2 Workshop

Start ohne Umwege

Details

Weitere Schulungen ...