2009-08-08 2 views
4

Ich bin brandneue WCF und habe begrenzte Erfahrung Codierung gegen Web-Services.ist WCF nützlich, um einen Client zu erstellen, der einen Nicht-WCF-Webdienst verwendet?

Bei der Arbeit wurde es diktiert, WCF für alles Netzwerkdienst orientierte zu verwenden. Die Arbeit, die ich tun muss, beinhaltet die Abfrage eines nicht-WCF-Webdienstes, der anscheinend in Java erstellt wurde, mit einem Netscape-Zertifikatserver und der zugehörigen Infrastruktur (der Dienst steht nicht unter unserer Kontrolle). Ich habe die WSDL für den Webservice.

  1. Macht WCF einen Mehrwert für diesen Job?

  2. Ist es vernünftig, normal oder eine bewährte Methode, einen WCF-Client für einen Nicht-WCF-Dienst zu erstellen?

  3. Kann mir jemand dazu einen Rat geben?

Vielen Dank !!!

Antwort

4

Ja, ein WCF-Client kann gegen einen Webdienst arbeiten, der mit einer anderen Technologie oder Plattform erstellt wurde. Es ist ziemlich häufig. Mit Visual Studio wird der clientseitige Proxycode für Sie aus der WSDL generiert, und Sie können einen Remote-Service wie einen lokalen Code aufrufen.

Um nicht einen schamlosen Stecker zu ziehen, hier ist ein Beispiel für eine WCF client calling the Amazon S3 web service, die ganz sicher nicht mit .NET gebaut wird. Die Probe zeigt einen typischen Workflow, wenn ein WCF-Client zu erstellen:

  1. hinzufügen Service-Referenz an den Webdienst von Visual Studio an der WSDL-URL verweist. Sie müssen in diesem Schritt nichts programmieren.

  2. Rufen Sie den Webdienst über Ihren Code auf. In dem folgenden Code wurde die AmazonS3Client-Klasse von Visual Studio in Schritt 1 oben erstellt. Sie erhalten volle Intelligenz, wenn Sie client.ListAllMyBuckets eingeben, um diesen Service aufzurufen.

static void Main(string[] args) { 
    DateTime  now = LocalNow(); 

    // create the web service client object 
    AmazonS3Client client = new AmazonS3Client(); 

    // invoke the web service 
    var result = client.ListAllMyBuckets( 
     accessKeyId, 
     now, 
     SignRequest(secretAccessKey, "ListAllMyBuckets", now)); 

    // show the results returned from the web service 
    foreach (var bucket in result.Buckets) { 
     Console.WriteLine(bucket.Name); 
    } 
} 
+0

1: nice Pinguin 2: keine Scham in einem schamlosen Stecker: -) 3: Vielen Dank für die Hilfe, die aussieht wie die Richtung, die ich gehen muss – Jay

Verwandte Themen