2010-02-25 7 views
7

Ist es möglich, eine Servicereferenz in Visual Studio hinzuzufügen, die die lokale Proxyklasse generiert, um den WCF-Dienst aufzurufen, wenn die netTcpBinding verwendet?Kann ich eine Service-Referenz mit netTcpBinding in WCF hinzufügen?

Wie ich es verstanden habe, erfordert die Service-Referenz-Methode eine WSDL, die vom Service verfügbar gemacht wird, die nur von den http-Bindungen unterstützt wird.

Vielleicht, könnte ich die Service-Referenz lokal in der Entwicklung hinzufügen, aber dann wechseln Sie die Konfiguration zur Verwendung von Nettcp zur Laufzeit in der Produktion?

Der Grund, den ich stelle, ist, weil ich in einem Windows-Dienst hosting (Server 2003, also kein WAS, und kann IIS nicht verwenden). Und wir können die Berechtigungen für die HTTP-Namensraumreservierung nicht ändern ... daher können wir die HTTP-Bindungen nicht verwenden. NetTcp funktioniert, aber in diesem speziellen Fall bezieht das Objektdiagramm, das wir hin und her leiten, Objekte ein, die im Service von einem EDMX-Modell erzeugt werden ... also können wir es nicht in einer Vertragsassembly teilen.

Vielen Dank im Voraus!

Antwort

3

Fügen Sie einfach eine Bindung mit mexTcpBinding hinzu.

0

Alle Bindungen sind durch WSDL ausgesetzt. Wenn Sie die NETTCP-Bindungen hinzufügen, generiert svcutil den Client korrekt. Ich habe es nicht in der ADD-Referenz in VS verwendet, da ich es immer vorgezogen habe, die Klasse mit SVCutil zu generieren.

1

Ist es möglich, einen Dienstverweis in Visual Studio hinzufügen, die die lokale Proxy-Klasse erzeugt die WCF-Dienst aufrufen, wenn die netTcpBinding mit?

Ja, auf jeden Fall!

Wie ich es verstanden wird, erfordert der Dienst Referenzmethode eine WSDL durch den Service freigelegt werden, die nur durch die HTTP-Bindungen unterstützt wird oder?

Nein, definitiv nicht - WCF-Metadaten (entweder seine eigenen spezifischen Format oder als WSDL/XSD-Dateien ausgesetzt) ​​ist auf jeden Fall für alle SOAP-basierte Anrufe zur Verfügung - unabhängig von deren Transport.

Können Sie uns zeigen, was Sie haben, in Bezug auf serverseitige Konfiguration? Wahrscheinlich verpassen Sie nur eine kleine Konfigurationseinstellung oder etwas - wenn wir sehen, was Sie haben, können wir das vielleicht genau bestimmen und Ihnen mehr helfen!