WCF 4 - Soap- und REST-Endpunkte

8

Ich habe versucht, mithilfe der WCF-REST-Serviceanwendungsvorlage alle meine REST-fähigen Webdienste zu hosten. Ich möchte jedoch auch meine WCF-Services mit einem SOAP-Endpunkt bereitstellen können.

Ich kann meine WCF-RESTful-Dienste in WCF 4 problemlos mit dem folgenden Beispiel verwenden: Ссылка

Ist das möglich? Ich würde mir vorstellen, dass es einen Weg in der Global.asax geben sollte, um zusätzliche Endpunkte zu verdrahten und anzugeben, ob man basicHttpBinding verwendet. Muss ich die WCF-REST-Serviceanwendungsvorlage nicht verwenden und eine Standard-Serviceanwendung erstellen und über die Config verbinden?

Danke für jede Hilfe.

    
Brandon 05.04.2011, 13:34
quelle

3 Antworten

6

Obwohl ich REST- und SOAP-Endpunkte in den meisten Fällen nicht kombinieren würde, stimme ich zu, dass dies in bestimmten Fällen notwendig ist. Die Antwort auf die Frage: Ja, es ist möglich, sie zu mischen. Sie haben zwei Möglichkeiten:

Der Aufruf in Global.asax.cs, der die Route für den REST-Endpunkt definiert

%Vor%

definiert im Wesentlichen einen Dienst an der Adresse / Service1. Sie können einen neuen "Service" hinzufügen, der die gleiche Service-Implementierung verwendet, jedoch eine andere Service-Host-Factory verwendet (anstelle der WebServiceHostFactory, die einen REST-Endpunkt definiert, verwenden Sie Ihren eigenen):

%Vor%

Und in global.asax.cs, RegisterRoutes:

%Vor%
  • Wenn Sie eigentlich einen "logischen" Dienst mit zwei Endpunkten haben möchten (ich würde es nicht empfehlen, da der vorherige Ansatz einfach genug ist), können Sie erneut eine benutzerdefinierte ServiceHostFactory erstellen. In dieser Fabrik würden Sie dann zwei hinzufügen Endpunkte: eins für REST (mit WebHttpBinding / WebHttpBehavior) und eins für SOAP (zum Beispiel mit BasicHttpBinding).
carlosfigueira 13.05.2011, 04:24
quelle
2

Ich musste der Fabrik von carlosfigeira einen Konstruktor hinzufügen, damit der Endpunkt vom Interface und nicht vom Service selbst erstellt wird:

%Vor%     
BurnWithLife 14.09.2011 21:37
quelle
0

Ich habe einen Webservice ausgeführt, bei dem Clients sowohl SOAP- als auch REST-Zugriff benötigen. Sie können Ihre REST-URL-Vorlagen mit den Attributen WebGet und WebInvoke definieren.

%Vor%

Ordnen Sie die Endpunkte dann einfach wie erforderlich in der Konfiguration

zu %Vor%     
Phil Degenhardt 16.05.2011 14:19
quelle

Tags und Links