Procedimiento para usar un moniker de servicio con contratos de intercambio de metadatos
Después de desarrollar algunos servicios WCF nuevos, podría decidir que quiere poder llamar a estos servicios desde un script o una aplicación de Visual Basic 6.0. Una de las maneras sería generar un ensamblado de cliente de WCF, registrar el ensamblado en COM, instalar el ensamblado en la GAC y, luego, hacer referencia a los tipos COM en el código de Visual Basic. Al distribuir la aplicación, tendrá que distribuir también el ensamblado de cliente de WCF. El usuario tendrá que registrar, a continuación, el ensamblado de cliente de WCF con COM y colocarlo en la GAC. La interoperabilidad COM de WCF también le permite realizar las mismas llamadas de servicio sin depender de un ensamblado de cliente de WCF. El moniker de WCF le permite llamar a cualquier servicio WCF desde cualquier lenguaje compatible con COM (Visual Basic, VBScript, Visual Basic para Aplicaciones [VBA], etc.) especificando un URI del punto de conexión de intercambio de metadatos (Mex) que el moniker de servicio utiliza para extraer información de tipos sobre el servicio. En este tema se describe cómo llamar al ejemplo de introducción a WCF mediante un moniker de WCF que especifica un punto de conexión Mex.
Nota
No se crean instancias realmente de los tipos definidos por el ensamblado de cliente de WCF. El ensamblado solo se utiliza para los metadatos.
Utilizar el moniker de servicio con una dirección de Mex
Compile el ejemplo de introducción y utilice un explorador para ir a su dirección URL (
http://localhost/ServiceModelSamples/Service.svc
) con el fin de asegurarse que el servicio funciona.Crear un script Visual Basic o aplicación Visual Basic que contiene el código siguiente:
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)
Ejecute la aplicación Visual Basic o script.
Nota
El servicio al que está llamando debe exponer un extremo de Mex para que el moniker pueda leer los metadatos del servicio. Para más información, consulte Publicación de metadatos para un servicio mediante un archivo de configuración.
Nota
Si el moniker no tiene el formato correcto o si el servicio no está disponible, la llamada a
GetObject
devolverá un error que dice "Sintaxis no válida". Si recibe este error, asegúrese de que el moniker que utiliza sea correcto y que el servicio esté disponible.