Share via


クライアント アプリケーションへの SOAP ヘッダーの追加

この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。

SQL Server では、ネイティブ XML Web サービスを使用しているときに、SOAP 拡張ヘッダーがサポートされます。これらの SOAP 拡張ヘッダーを、SOAP セッションや Web Services Security (WS-Security) など、サポートされる SQL オプションや他の SOAP 拡張ヘッダーと併用して、SOAP ベースのアプリケーションを拡張および強化できます。詳細については、「SOAP 拡張ヘッダー」を参照してください。

このトピックでは、SQL Server でサポートされる、省略可能な各 SOAP 拡張ヘッダーが実装されているサンプル クラス ライブラリについて説明します。このライブラリは、既存の Visual Studio 2005 SOAP クライアント プロジェクトに追加できます。このライブラリには、「ネイティブ XML Web サービス要求を送信する場合のサンプル アプリケーション」に記載されているサンプル アプリケーションが含まれます。

また、セキュリティやセッション サポートに適切な SOAP 拡張ヘッダーを使用して、これらの機能のいずれかを実装するヘッダーを扱っている場合は、次のトピックを参照することをお勧めします。

注意

次の手順は、「Visual Studio 2005 クライアントを使用した SOAP 要求の送信 (C#)」で示すように、Visual Studio 2005 を使用して既存の SOAP クライアント アプリケーションを作成し、SQL Server を使用して作成した HTTP SOAP エンドポイントへの Web 参照を追加していることを前提としています。

Visual Studio プロジェクトに SOAP 拡張ヘッダー サンプル ライブラリを追加するには

  1. 「SQL SOAP ヘッダー サンプル クラス ライブラリの C# コード リスト」の内容をコピーしてメモ帳に貼り付け、"SqlSoapHeader.cs" という名前を付けて SOAP クライアント プロジェクト ファイルを含むフォルダと同じフォルダに保存します。

  2. クライアント コンピュータで、[スタート] ボタンをクリックし、[すべてのプログラム] をポイントします。次に、[Microsoft Visual Studio 2005] から Microsoft Visual Studio 2005 を起動します。

  3. [プロジェクトを開く] をクリックします。

  4. SOAP クライアント プロジェクト (.csproj) ファイルを参照し、選択します。

  5. ソリューション エクスプローラで、次の手順を実行します。

    1. 名前でプロジェクトを選択し、選択したプロジェクトを右クリックします。次に、[追加] をポイントして [既存の項目の追加] をクリックします。

    2. [既存の項目の追加] ダイアログ ボックスで、手順 1. で SqlSoapHeader.cs ファイルを保存した場所を参照し、ファイルを選択します。

    3. [すべてのファイルを表示] をクリックし、[Web 参照] ノードを展開して、Reference.cs ファイルを選択します。

  6. コード エディタで、Reference.cs ファイルを更新して、パブリック変数をエンドポイント定義クラスに追加します。変数は、省略可能な SOAP ヘッダーの型と同じ SqlSoapHeader クラスに含める必要があります。

    たとえば、エンドポイント クラス定義 ("sql_endpoint") の下にある Reference.cs ファイルに SqlSoapHeader.Security クラスの "sqlSecurity" というパブリック プロパティ変数を追加するには、次のコード行を追加します。

    public class sql_endpoint : System.Web.Services.Protocols.SoapHttpClientProtocol {
         public SqlSoapHeader.Security  sqlSecurity
    
  7. SOAP ヘッダーを有効にする Web メソッドに、適切な SoapHeaderAttribute プロパティを追加します。

    たとえば、Security クラスを実装している場合、次のコード行を追加します。

    [System.Web.Services.Protocols.SoapHeaderAttribute("sqlSecurity")]
    public int UDFReturningAScalar() {...}
    
    注意

    この例では、SoapHeaderAttribute で使用される引数の値 sqlSecurity は、前の手順で使用された変数名に対応している必要があります。