Поделиться через


Практическое руководство. Использование моникера службы с контрактами обмена метаданными

После разработки некоторых новых служб WCF вы можете решить, что вы хотите вызвать эти службы из скрипта или приложения Visual Basic 6.0. Один из способов — создать клиентную сборку WCF, зарегистрировать сборку с помощью COM, установить сборку в GAC, а затем ссылаться на типы COM из кода Visual Basic. При распространении приложения также потребуется распространить сборку клиента WCF. Затем пользователь должен будет зарегистрировать клиентскую сборку WCF с помощью COM и разместить ее в глобальном кэше сборок. Com Interop WCF также позволяет выполнять те же вызовы служб без использования клиентской сборки WCF. Moniker WCF позволяет вызывать любую службу WCF из любого языка, совместимого с COM (Visual Basic, VBScript, Visual Basic для приложений (VBA) и т. д.), указав URI конечной точки обмена метаданными (Mex), который моникер службы использует для извлечения сведений о типе службы. В этом разделе описывается, как вызвать пример WCF с помощью моникера WCF, указывающего конечную точку Mex.

Примечание.

Типы, определенные клиентской сборкой WCF, никогда не создаются. Сборка используется только для метаданных.

Использование моникера службы с адресом обмена метаданными (Mex)

  1. Создайте пример "Начало работы" и используйте браузер, чтобы перейти по ЕГО URL-адресу (http://localhost/ServiceModelSamples/Service.svc), чтобы убедиться, что служба работает.

  2. Создайте скрипт Visual Basic или приложение Visual Basic, содержащее следующий код:

    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)  
    
  3. Запустите приложение или скрипт Visual Basic.

    Примечание.

    Вызываемая служба должна экспонировать конечную точку обмена метаданными (Mex) в моникер, чтобы прочитать метаданные из службы. Дополнительные сведения см. в разделе "Практическое руководство. Публикация метаданных для службы с помощью файла конфигурации".

    Примечание.

    Если моникер неправильно сформирован или если служба недоступна, вызов GetObject возвращает ошибку с сообщением "Недопустимый синтаксис". Если вы получите эту ошибку, убедитесь, что используется моникер, который вы используете, и служба доступна.

См. также