方法 : Metadata Exchange コントラクトと共にサービス モニカを使用する

新しい WCF サービスをいくつか開発した後に、そのサービスをスクリプトまたは Visual Basic 6.0 アプリケーションから呼び出せるようにする必要が生じる場合があります。この方法の 1 つに、WCF クライアント アセンブリを作成し、そのアセンブリを COM を使用して登録して GAC にインストールし、Visual Basic コードで COM 型を参照する方法があります。アプリケーションを配布するときに、WCF クライアント アセンブリも配信する必要があります。次にユーザーは COM を使用して WCF クライアント アセンブリを登録し、それを GAC に配置する必要があります。WCF COM Interop でも、WCF クライアント アセンブリに依存しない同じサービス呼び出しを作成できます。WCF モニカを使用すれば、サービスに関する型情報を抽出するためにサービス モニカで使用されるメタデータ交換 (Mex) エンドポイント URI を指定することにより、必要な WCF サービスを任意の COM 互換言語 (Visual Basic、VBScript、Visual Basic for Applications (VBA) など) から呼び出すことができます。ここでは、Mex エンドポイントを指定する WCF モニカを使用して、 WCF の入門サンプルを呼び出す方法を説明します。

ms733885.note(ja-jp,VS.90).gifメモ :
WCF クライアント アセンブリで定義された型は、実際にインスタンス化されることはありません。アセンブリはメタデータにのみ使用されます。

Mex アドレスを使うサービス モニカの使用

  1. 入門サンプルを構築し、Internet Explorer を使用してその URL (https://localhost/ServiceModelSamples/Service.svc) を参照し、サービスが動作していることを確認します。

  2. Visual Basic スクリプトまたは Visual Basic アプリケーションを作成し、次のコードを記述します。

        monString = "service:mexaddress=https://localhost/ServiceModelSamples/Service.svc/MEX"
        monString = monString + ", address=https://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 アプリケーションまたはスクリプトを実行します。

    ms733885.note(ja-jp,VS.90).gifメモ :
    モニカがサービスのメタデータを読み取るには、呼び出すサービスで、Mex エンドポイントが公開されている必要があります。詳細については、「方法 : 構成ファイルを使用してサービスのメタデータを公開する」を参照してください。

    ms733885.note(ja-jp,VS.90).gifメモ :
    モニカの形式が正しくないか、GetObject を呼び出せない場合は、"構文が無効です" というメッセージが返されます。このエラーを受信した場合は、使用しているモニカが正しく、サービスが使用可能であることを確認してください。

関連項目

タスク

方法 : WSDL コントラクトと共にサービス モニカを使用する

概念

方法 : 未登録で Windows Communication Foundation のサービス モニカを使用する