方法: Metadata Exchange コントラクトと共にサービス モニカーを使用するHow to: Use a Service Moniker with Metadata Exchange Contracts

新しい WCF サービスを開発した後、これらのサービスをスクリプトまたは Visual Basic 6.0 アプリケーションから呼び出すことができるようにすることができます。After developing some new WCF services, you may decide that you want to be able to call these services from a script or a Visual Basic 6.0 application. 1つの方法として、WCF クライアントアセンブリを生成し、アセンブリを COM に登録し、アセンブリを GAC にインストールしてから、Visual Basic コードから COM 型を参照する方法があります。One method would be to generate a WCF client assembly, register the assembly with COM, install the assembly in the GAC, and then reference the COM types from your Visual Basic code. アプリケーションを配布する場合は、WCF クライアントアセンブリも配布する必要があります。When you distribute the application, you will have to distribute the WCF Client assembly as well. 次にユーザーは COM を使用して WCF クライアント アセンブリを登録し、それを GAC に配置する必要があります。The user will then have to register the WCF client assembly with COM and place it in the GAC. WCF COM 相互運用機能を使用すると、WCF クライアントアセンブリに依存することなく、同じサービス呼び出しを行うこともできます。WCF COM Interop also allows you to make the same service calls without relying on a WCF client assembly. WCF モニカーを使用すると、サービスモニカーがサービスに関する型情報を抽出するために使用する metadata exchange (Mex) エンドポイント URI を指定することで、任意の COM 互換言語 (Visual Basic、VBScript、Visual Basic for Applications (VBA) など) から任意の WCF サービスを呼び出すことができます。The WCF moniker allows you to call any WCF service from any COM-compatible language (Visual Basic, VBScript, Visual Basic for Applications (VBA), and so on) by specifying a metadata exchange (Mex) endpoint URI that the service moniker uses to extract type information about the service. このトピックでは、Mex エンドポイントを指定する WCF モニカーを使用してはじめに WCF サンプルを呼び出す方法について説明します。This topic describes how to call the Getting Started WCF sample using a WCF moniker that specifies a Mex endpoint.

注意

WCF クライアントアセンブリによって定義された型は、実際にはインスタンス化されません。The types defined by the WCF client assembly are never actually instantiated. アセンブリはメタデータにのみ使用されます。The assembly is used only for metadata.

Mex アドレスを使うサービス モニカーの使用Using the service moniker with a Mex address

  1. はじめにサンプルをビルドし、Internet Explorer を使用してその URL () を参照し http://localhost/ServiceModelSamples/Service.svc 、サービスが動作していることを確認します。Build the Getting Started sample and use Internet Explorer to browse to its URL (http://localhost/ServiceModelSamples/Service.svc) to ensure that the service is working.

  2. Visual Basic スクリプトまたは Visual Basic アプリケーションを作成し、次のコードを記述します。Create a Visual Basic script or Visual Basic application that contains the following code:

    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 アプリケーションまたはスクリプトを実行します。Run the Visual Basic application or script.

    注意

    モニカーがサービスのメタデータを読み取るには、呼び出すサービスで、Mex エンドポイントが公開されている必要があります。The service you are calling must expose a Mex endpoint for the moniker to be able to read the metadata from the service. 詳細については、「方法: 構成ファイルを使用してサービスのメタデータを公開する」を参照してください。For more information, see How to: Publish Metadata for a Service Using a Configuration File.

    注意

    モニカーの形式が正しくないか、GetObject を呼び出せない場合は、"構文が無効です" というメッセージが返されます。If the moniker is malformed or if the service is unavailable, the call to GetObject will return an error saying "Invalid Syntax." このエラーが発生した場合は、使用しているモニカーが正しく、サービスが使用可能であることを確認してください。If you receive this error, make sure the moniker you are using is correct and the service is available.

関連項目See also