Share via


Web サービス プロキシの作成

クライアントと Web サービスは、SOAP メッセージを使用して通信できます。SOAP メッセージは、入力パラメータと出力パラメータを XML としてカプセル化します。プロキシ クラスは、パラメータを XML 要素にマップした後、ネットワークを介して SOAP メッセージを送信します。この方法では、プロキシ クラスによって、SOAP レベルで Web サービスと通信する必要がなくなり、SOAP および Web サービスのプロキシをサポートするあらゆる開発環境で Web サービスを呼び出すことができます。

Microsoft .NET Framework を使用して開発プロジェクトにプロキシ クラスを追加する方法は、.NET Framework の WSDL ツールを使用すること、および Microsoft Visual Studio で Web 参照を追加することの 2 種類です。ここでは、これらの方法について詳しく説明します。

WSDL ツールを使用したプロキシの追加

.NET Framework SDK には、Web サービス記述言語ツール (Wsdl.exe) が含まれています。これにより、.NET Framework 開発環境で使用する Web サービス プロキシを生成できます。Web サービスをサポートする言語 (現在は C# と Microsoft Visual Basic) でクライアント プロキシを作成する場合に最も一般的な方法は、WSDL ツールを使用することです。

Wsdl.exe を使用してプロキシ クラスをプロジェクトに追加するには

  1. コマンド プロンプトから、Wsdl.exe を使用してプロキシ クラスを作成します。最低限レポート サーバー Web サービスへの URL を指定します。
    たとえば、次のコマンド プロンプト ステートメントは、レポート サーバー Web サービスの管理用エンドポイントの URL を指定します。

    wsdl /language:CS /n:"Microsoft.SqlServer.ReportingServices2005" http://myserver/reportserver/reportservice2005.asmx?wsdl
    

    WSDL ツールは、プロキシ生成用のコマンド プロンプト引数の数値を受け付けます。前の例は C# 言語、プロキシに使用する推奨名前空間 (Web サービス エンドポイントを複数使用する場合に名前の衝突を避けるため) を指定し、ReportingService2005.cs という名前の C# ファイルを生成します。この例で Visual Basic を指定した場合は、ReportingService2005.vb という名前のプロキシ ファイルが生成されます。このファイルは、コマンド実行元のディレクトリに作成されます。

  2. プロキシ クラスをアセンブリ ファイル (拡張子 .dll) にコンパイルし、それをプロジェクトで参照するか、またはプロキシ クラスをプロジェクト アイテムとして追加します。

    ms155134.note(ja-jp,SQL.90).gifメモ :
    プロキシ クラスをプロジェクトに手動で追加する場合は、System.Web.Services.dll への参照を追加する必要があります。Visual Studio .NET で Web 参照を使用してプロキシを追加する場合は、参照が自動的に作成されます。詳細については、この後の「Visual Studio で Web 参照を使用するプロキシの追加」を参照してください。

    プロキシ クラスをアイテムとしてプロジェクトに追加した後、関連付けられたファイルがソリューション エクスプローラに表示されます。

  3. プログラムによってサービスを呼び出すには、プロキシ クラスのインスタンスを作成します。
    次のコード例は、プロジェクトに ReportingService2005 プロキシ クラスのインスタンスを作成する場合の構文を示しています。

Dim service As New ReportingService2005()
ReportingService2005 service = new ReportingService2005();

完全な構文を含む Wsdl.exe ツールの詳細については、.NET Framework SDK ドキュメントの「Web サービス記述言語ツール」を参照してください。Web サービス プロキシの詳しい説明は、.NET Framework SDK ドキュメントの「XML Web サービス プロキシの作成」を参照してください。

ms155134.note(ja-jp,SQL.90).gifメモ :
旧バージョンとの互換性を維持するため、Web サービスには Microsoft SQL Server 2000 Reporting Services も用意されています。この Reporting Services には http://myserver/reportserver/reportservice.asmx?wsdl からアクセスできます。

Visual Studio で Web 参照を使用するプロキシの追加

Web 参照によって、プロジェクトで 1 つ以上の Web サービスを使用できます。Visual Studio では、ユーザーが次の簡単な手順に従うことによって、Web サービスの参照をプロジェクトに追加できます。

Web 参照をプロジェクトに追加するには

  1. ソリューション エクスプローラ で、Web サービスを使用するプロジェクトを選択します。

  2. [プロジェクト] メニューの [Web 参照の追加] をクリックします。
    [Web 参照の追加] ダイアログ ボックスが開きます。

  3. [URL] フィールドに、レポート サーバー Web サービスへの完全なパスを入力します。
    レポート サーバー Web サービスのレポート実行エンドポイントの単純な URL は、次のようになります。

    http://myserver/reportserver/reportexecution2005.asmx
    

    URL には、レポート サーバー Web サービスを配置するドメイン、Web サービスを格納するフォルダ名、および Web サービスの検出ファイル名が含まれます。各種 URL 要素の完全な説明については、「SOAP API へのアクセス」を参照してください。
    Web サービスによって提供されるメソッドとプロパティの説明が、左側のブラウザ ペインに表示されます。

    ms155134.note(ja-jp,SQL.90).gifメモ :
    レポート サーバー Web サービスに関連付けられたアイテムの詳細については、「レポート サーバー Web サービスの機能」を参照してください。
  4. プロジェクトでレポート サーバー Web サービスを使用できること、およびレポート サーバーにアクセスするための適切な権限を持っていることを確認します。

  5. [Web 参照名] フィールドに、プログラムによってレポート サーバー Web サービスにアクセスする場合にコードで使用する名前を入力します。

  6. [参照の追加] を選択し、アプリケーションで Web サービスへの参照を作成します。
    アクティブなプロジェクトの [Web 参照] ノードの下にある [ソリューション エクスプローラ] に、新しい参照が [Web 参照名] フィールドに指定した名前で表示されます。

  7. [ソリューション エクスプローラ] で、[Web 参照] フォルダを展開し、プロジェクトのアイテムで使用できる Web 参照クラスの名前空間をメモします。
    Web 参照をプロジェクトに追加した後、関連付けられたファイルが [ソリューション エクスプローラ] の [Web 参照] フォルダ内にあるフォルダに表示されます。

Web 参照を追加した後に、次の構文を使用してプロキシ クラスのインスタンスを作成します。

Dim rs As New myNamespace.myReferenceName.ReportExecutionService()
rs.Url = "http://myservername.reportserver/reportexecution2005.asmx?wsdl"
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
myNamespace.myReferenceName.ReportExecutionService rs = new myNamespace.myReferenceName.ReportExecutionService();
rs.Url = "http://myservername.reportserver/reportexecution2005.asmx?wsdl"
rs.Credentials = System.Net.CredentialCache.DefaultCredentials

using (Visual Basic では Import) ディレクティブをレポート サーバー Web サービス参照に追加することもできます。このディレクティブを使用する場合は、名前空間内の型を完全修飾する必要がありません。このためには、次のコードをファイルに追加します。

Import myNamespace.myReferenceName
using myNamespace.myReferenceName;

参照

関連項目

Reporting Services Web Services Class Library

その他の技術情報

レポート サーバー Web サービス
Web サービスと .NET Framework を使用したアプリケーションの構築

ヘルプおよび情報

SQL Server 2005 の参考資料の入手