2009-08-08 6 views
4

Je suis tout nouveau à WCF, et j'ai une expérience limitée du codage des services Web.WCF est-il utile pour créer un client qui utilise un service Web non-WCF?

Au travail, il a été dicté d'utiliser WCF pour tout ce qui concerne le service réseau. Le travail que je dois faire consiste à interroger un service Web non-WCF, apparemment construit en Java, avec un serveur de certificats Netscape et l'infrastructure associée (le service n'est pas sous notre contrôle). J'ai le WSDL pour le service web.

  1. Est-ce que WCF ajoute de la valeur à ce travail? Est-il raisonnable, normal ou une meilleure pratique de créer un client WCF par rapport à un service non-WCF?

  2. Quelqu'un peut-il offrir des conseils pour ce faire?

Merci !!!

Répondre

4

Oui, un client WCF peut fonctionner avec un service Web créé avec une autre technologie ou plate-forme. C'est assez commun. Avec Visual Studio, le code de proxy côté client est généré à partir du fichier WSDL et vous pouvez appeler un service distant comme s'il s'agissait d'un code local.

Pour ne pas tirer une prise éhontée, voici un exemple de WCF client calling the Amazon S3 web service, qui n'est certainement pas construit avec .NET. L'exemple montre un flux de travail typique lors de la création d'un client WCF:

  1. Ajouter un service Référence au service Web, en pointant Visual Studio à l'adresse WSDL. Vous n'avez rien à coder dans cette étape.

  2. Appelez le service Web à partir de votre code. Dans le code ci-dessous, la classe AmazonS3Client a été créée par Visual Studio à l'étape 1 ci-dessus. Vous obtenez une intelense complète en tapant client.ListAllMyBuckets pour invoquer ce service.

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 pingouin 2: pas de honte dans un bouchon sans vergogne: - 3: merci beaucoup pour l'aide, cela ressemble à la direction que j'ai besoin d'aller – Jay

Questions connexes