2009-06-23 10 views
12

Ich muss unsere Webdienste aktualisieren, um WCF anstelle von ASMX zu verwenden. Wenn die Signaturen der Webdienste gleich bleiben, müssen bestehende Clients, die bereits den ASMX-Dienst aufrufen, an ihrem Ende Änderungen vornehmen? Gibt es trotzdem WCF zu benutzen, aber nicht zu zwingen, etwas zu ändern?Umwandlung von ASMX in WCF-Webdienst

+2

Können Sie erklären, warum Sie "upgraden" müssen? – redsquare

Antwort

12

Option 1:

  1. der aktuellen ASMX WSDL verwenden, erzeugen Sie den Client svcutil.exe
  2. Besorgen Sie sich die erzeugte Schnittstelle und einen WCF-Dienst erstellen, die auf diese Schnittstelle basiert

    Ausgang: Ein Neuer WCF-Endpunkt, der mit basicHttpBinding konfiguriert wurde. Clients müssen die URL aktualisieren, an die sie die Nachrichten senden.

Option 2:

  1. Refaktorieren ASMX-Code. Verschieben Sie die gesamte Logik in eine separate DLL.
  2. Erstellen Sie einen WCF-Dienst, und verwenden Sie die Logik in der refaktorierten DLL.

    Ausgang: 2 Endpunkte, ein für ASMX und ein weiterer für WCF

8

Wenn Sie die BasicHttpBinding für die neuen WCF-Dienst verwenden und implementieren die gleichen Methoden mit derselben Nachrichtenstruktur sollten die bestehenden Anrufer sein in der Lage, diesen neuen WCF-Service aufzurufen, ohne Änderungen vorzunehmen.

Es gibt auch ein AspNetCompatibilityRequirements Attribut, um ein mögliches Kompatibilitätsproblem zu umgehen - siehe MSDN documentation darauf.

Marc