Frage

Wir haben einen Dienst, der einige Einstellungen hat, die nur über net.tcp unterstützt werden.Wie fügt man am besten einen weiteren Endpunkt hinzu?Muss ich einen komplett neuen Host erstellen?

War es hilfreich?

Lösung

Ein Dienst kann über mehrere Endpunkte innerhalb eines einzelnen Hosts verfügen, aber jeder Endpunkt muss über eine eindeutige Kombination aus Adresse, Bindung und Vertrag verfügen.Für einen von IIS gehosteten Dienst (d. h. eine .SVC-Datei) legen Sie einfach die Adresse des Endpunkts auf a fest relativ URI und stellen Sie sicher, dass Ihr von Visual Studio oder wsdl.exe generierter Client den Namen des Endpunkts in seinem Konstruktor angibt.

Siehe auch den MSDN-Artikel Mehrere Endpunkte.

Andere Tipps

Sie können mehrere Endpunkte entweder auf dem Server oder dem Client definieren.

Um dies auf dem Client zu tun, müssen Sie lediglich Ihre app.config-Datei mit einem neuen Endpunkt mit einem anderen Namen bearbeiten und dann festlegen, wann Sie Ihren neuen Client erstellen.

Wenn Sie beispielsweise einen Endpunkt in Ihrer Client-App haben wie:

<endpoint address="https://yourdomain.com/WCF/YourService.svc"
      binding="basicHttpBinding"
      bindingConfiguration="BasicHttpBinding_IYourService"
      contract="MessagingService.IYourService"  
      name="BasicHttpBinding_IYourService" />

Was Sie nennen:

YourServiceClient client = new YourServiceClient();

Sie können einen neuen Endpunkt mit einem neuen Namen hinzufügen:

<endpoint address="https://yourotherdomain.com/WCF/YourService.svc"
      binding="basicHttpBinding"
      bindingConfiguration="BasicHttpBinding_IYourService"
      contract="MessagingService.IYourService"  
      name="BasicHttpBinding_IYourService_ENDPOINT2" />

Was Sie anrufen können mit:

YourServiceClient client = new YourServiceClient("BasicHttpBinding_IYourService_ENDPOINT2");

Ich habe gerade die Domäne oben geändert, aber wenn Sie einen neuen Bindungskonfigurationsabschnitt erstellt hätten, könnten Sie einfach den Wert „bindingConfiguration“ ändern.

Sie müssen einen komplett neuen Host erstellen, wenn Sie derzeit IIS als Host verwenden – IIS unterstützt nur HTTP- und keine TCP-Bindungen.Wenn Sie jedoch WAS oder einen Windows-Dienst verwenden, können Sie einfach einen neuen net.tcp-Endpunkt erstellen.

Wir können mehrere Endpunkte für denselben Dienst verwenden.Wir können die Webkonfiguration auch auf folgende Weise konfigurieren

 <service name="MessagePatternDemo.Service1">  
 <endpoint name="ep1" address="/ep1" binding="basicHttpBinding" 
   contract="MessagePatternDemo.IService1"/>  
 <endpoint name="ep2" address="/ep2" binding="wsHttpBinding"  
   contract="MessagePatternDemo.IService1" />  
 <endpoint name="mex" contract="IMetadataExchange" address="mex"  
   binding="mexHttpBinding" />  
 </service>   
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top