Procédure : utiliser un moniker de service avec des contrats d’échange de métadonnées
Après avoir développé de nouveaux services WCF, vous pouvez décider que vous souhaitez être en mesure d’appeler ces services à partir d’un script ou d’une application Visual Basic 6.0. Une méthode consisterait à générer un assembly client WCF, à inscrire l’assembly avec COM, à installer l’assembly dans le Global Assembly Cache (GAC), puis à référencer les types COM à partir de votre code Visual Basic. Lors de la distribution de l’application, vous devrez distribuer également l’assembly client WCF. L'utilisateur devra ensuite inscrire l'assembly client WCF avec COM et le placer dans le GAC. WCF COM Interop vous permet également d’effectuer les mêmes appels de service sans reposer sur un assembly client WCF. Le moniker WCF vous permet d’appeler tout service WCF à partir de tout langage compatible avec COM (Visual Basic, VBScript, Visual Basic pour applications (VBA), et ainsi de suite) en spécifiant un URI de point de terminaison d’échange de métadonnées (Mex) que le moniker de service utilise pour extraire des informations de type à propos du service. Cette rubrique décrit comment appeler l’exemple WCF de Prise en main à l’aide d’un moniker WCF qui spécifie un point de terminaison Mex.
Notes
Les types définis par l’assembly client WCF ne sont jamais réellement instanciés. L'assembly est utilisé uniquement pour les métadonnées.
Utilisation du moniker de service avec une adresse Mex
Générez l’exemple Bien démarrer et utilisez un navigateur pour accéder à son URL (
http://localhost/ServiceModelSamples/Service.svc
) afin de vérifier que le service fonctionne.Créez un script Visual Basic ou une application Visual Basic qui contient le code suivant :
monString = "service:mexaddress=http://localhost/ServiceModelSamples/Service.svc/MEX" monString = monString + ", address=http://localhost/ServiceModelSamples/Service.svc" monString = monString + ", contract=ICalculator, contractNamespace=http://Microsoft.ServiceModel.Samples" monString = monString + ", binding=WSHttpBinding_ICalculator, bindingNamespace=http://Microsoft.ServiceModel.Samples" Set calc = GetObject(monString) MsgBox calc.Add(3, 4)
Exécutez l'application ou le script Visual Basic.
Notes
Le service que vous appelez doit exposer un point de terminaison Mex pour que le moniker soit en mesure de lire les métadonnées du service. Pour plus d’informations, consultez Comment : Publier les métadonnées d’un service à l’aide d’un fichier de configuration.
Notes
Si le moniker est mal formé ou si le service n’est pas disponible, l’appel à
GetObject
retourne une erreur indiquant que la syntaxe n’est pas valide. Si vous recevez cette erreur, assurez-vous que le moniker que vous utilisez est correct et que le service est disponible.