servicecontract

___ tag123servicevertrag ___ Ein Servicevertrag ist ein Vertrag zwischen einem (Web-) Service (z. B. einem WCF-Service) und einem Kunden. ___ tag123wcf ___ Windows Communication Foundation ist ein Teil von .NET Framework, das ein einheitliches Programmiermodell für die schnelle Erstellung von serviceorientierten Anwendungen bereitstellt. ___ answer4817829 ___

Solange sich der Name und (XML) Namespace Ihres Servicevertrags nicht ändern - klar! WCF-Dienste interessieren sich nicht wirklich für die .NET-Interna ihrer Implementierung.

Dies funktioniert so lange, wie sich die Clientseite mit der Standardmethode %code% an Ihren Dienst anfügt (Abfragen der Metadaten des Dienstes, um einen separaten clientseitigen Proxy zu erstellen). In diesem Fall hat der clientseitige Proxy keine Kenntnis von allen serviceseitigen .NET-Namespaces ... Sie können diese auf der Serviceseite ändern und Ihre Servicedateien erneut bereitstellen - der Client wird weiterhin funktionieren.

Der einzige Ort, an dem Sie eine Anpassung vornehmen müssen, ist in der Konfiguration Ihrer Serviceseite (in %code% , wenn Sie in IIS hosten, andernfalls in %code% Ihres Hoster):

  • Das Attribut %code% des %code% -Tags hat den vollqualifizierten .NET-Typnamen der Serviceklasse (einschließlich .NET-Namespace)

  • Das Attribut %code% des %code% -Tags hat den vollständig qualifizierten .NET-Typnamen des Servicevertrags (einschließlich .NET-Namespace)

Dies funktioniert natürlich nicht, wenn Sie eine gemeinsame Assembly mit dem Servicevertrag teilen. In diesem Fall wird die Clientseite mit dem .NET-Namespace dieser Vertragsdateien in einer gemeinsamen Assembly verknüpft, und wenn sich diese ändern, Der Client wird nicht mehr funktionieren.

    
___ qstntxt ___

Gibt es eine Möglichkeit, den .NET-Namespace einer WCF-ServiceContract-Schnittstelle zu ändern und gleichzeitig den WCF-Dienst rückwärtskompatibel mit Clients zu machen, die den alten (mit Ausnahme von Namespaces) ServiceContract verwenden? Angenommen, ich habe (in vb.net):

%Vor%

Und ich möchte das zu

ändern %Vor%

Ohne den Dienst zu ändern.

Ich habe es gerade versucht, aber meine xsds, auf die von der wsdl verwiesen wird, zeigen den Namen des neuen Namespace, der eine Inkompatibilität zu sein scheint.

Irgendwelche Ideen?

    
___ qstnhdr ___ Kann ich den Namespace der WCF ServiceContract-Schnittstelle ändern, ohne den Dienst zu ändern? ___
2
Antworten

WCF-Klasse, die zwei Betriebsverträge in verschiedenen Serviceverträgen mit demselben Namen implementiert

Ich habe zwei Serviceverträge wie folgt erklärt: %Vor% Ich habe eine Klasse, die diese beiden Verträge umsetzt. Ich habe zwei Endpunkte für beide Verträge erstellt. Aber ich kann vom Client-Code aus nicht auf den Dienst zugreifen. Es zeigt e...
12.05.2010, 09:30
1
Antwort

Kann ich den Namespace der WCF ServiceContract-Schnittstelle ändern, ohne den Dienst zu ändern?

Gibt es eine Möglichkeit, den .NET-Namespace einer WCF-ServiceContract-Schnittstelle zu ändern und gleichzeitig den WCF-Dienst rückwärtskompatibel mit Clients zu machen, die den alten (mit Ausnahme von Namespaces) ServiceContract verwenden? Ange...
27.01.2011, 14:33