次の方法で共有


ASP.NET を使用して作成する XML Web サービスの構成オプション

XML Web サービスの構成は、すべての ASP.NET Web アプリケーションで使用される同一のパラダイムに従います。ASP.NET の構成は XML ベースのテキスト ファイルの構成アーキテクチャであるため、強力で拡張性に優れています。構成ファイルとは、Microsoft .NET Framework の特定の技術機能についての構成オプションを表す XML 要素のセットです。XML Web サービスの場合、構成オプションは構成ファイルの webServices XML 要素内にカプセル化されます。ASP.NET 構成のアーキテクチャの詳細については、「ASP.NET の構成」を参照してください。XML Web サービスの構成オプションの一覧については、<webServices> 要素に関するセクションを参照してください。

メッセージング プロトコルとサービス ヘルプ ページの構成

XML Web サービスのメッセージング プロトコルとサービス ヘルプ ページは、構成ファイルの <webServices> 要素の下にある <protocols> XML 要素で構成できます。構成は各設定について <add> 要素および <remove> 要素を追加することによって行い、その設定が構成ファイルのスコープで利用できるかどうかを指定します。<add> 要素は、構成ファイルのスコープでその設定のサポートを明示的に追加し、<remove> 要素は構成階層の上位レベルで追加されたサポートを削除します。たとえば、Machine.config ファイルの <add> 要素を使ってマシン レベルでプロトコルの設定を追加し、Web.config ファイルの <remove> 要素を使って Web アプリケーション レベルで削除できます。<add> 要素と <remove> 要素の構文を次に示します。

<{add|remove} name="protocol name" />

<add> 要素と <remove> 要素の name 属性には次のようなオプションがあります。

設定 説明
HttpSoap XML Web サービスについて HTTP プロトコル上の SOAP のサポートを制御します。既定では、インストールによりサポートが追加されます。
HttpGet XML Web サービスについて HTTP-GET プロトコルのサポートを制御します。既定では、インストールによってサポートは追加されません。
HttpPost 要求元に関係なく、XML Web サービスについて HTTP-POST プロトコルのサポートを制御します。既定では、インストールによってサポートは追加されません。
HttpPostLocalhost 要求元がローカル マシンである場合に、XML Web サービスについて HTTP-POST プロトコルのサポートを制御します。現在の構成に HttpPost が追加されている場合、この設定は無効です。既定では、インストールによりサポートが追加されます。
Documentation ユーザーがブラウザで何もパラメータを指定せずに XML Web サービスの URL に移動したときに、サービス ヘルプ ページを表示するかどうかを指定します。既定では、インストールによりサポートが追加されます。

**メモ   .**NET Framework バージョン 1.0 では HttpSoapHttpGetHttpPost、および Documentation の各設定値をサポートしており、既定ではすべての設定がマシン レベルで有効になっています。

セキュリティに関する推奨事項

XML Web サービスの HTTP-GET プロトコルや HTTP-POST プロトコルを有効にする前に、意図しない呼び出しが行われる可能性があることに注意する必要があります。たとえば、ユーザーがリンクを含む電子メールを受信し、疑いを持たずにそのリンクをクリックしたときに、ユーザーに代わって、電子メールで指定されたパラメータを使用して XML Web サービスが呼び出される場合があります。HTTP-GET プロトコルや HTTP-POST プロトコルを有効にする前に、このような意図しない呼び出しが危険であるかどうかを考慮してください。

マシン全体で HTTP-GET プロトコルおよび HTTP-POST プロトコルを無効にするには

  1. テキスト エディタで Machine.config ファイルを開きます。既定のインストールでは、Machine.config ファイルはインストールのルートの \Config サブディレクトリに配置されています。

  2. webServices セクションに HTTP-GET や HTTP-POST のサポートを追加する行がある場合は、その行をコメントにします。サポートを追加する行をコメントにすると、webServices セクションは次のようになります。

    <webServices>
        <protocols>
          <add name="HttpSoap"/> 
             <!-- <add name="HttpPost"/> -->          <!-- <add name="HttpGet"/>  -->
          <add name="Documentation"/>
          <add name="HttpPostLocalhost"/>
        </protocols>
    </webServices>
    
  3. Machine.config ファイルを保存します。

    この構成の変更は、そのマシンで管理される XML Web サービスを次回要求したときに有効になります。

個々の Web アプリケーションについてプロトコルのサポートを無効にするには

  1. 任意のエディタで Web アプリケーションのルート ディレクトリにある Web.config ファイルを開きます。Web.config ファイルが存在しない場合は作成します。

  2. Web.config ファイルの webServices セクションを編集して、明示的にプロトコルの設定を削除します。明示的に HTTP-POST プロトコルと HTTP-GET プロトコルを削除する例を次に示します。

    <webServices>
         <protocols>
           <remove name="HttpPost" />
           <remove name="HttpGet" />
         </protocols>
    </webServices>
    
  3. Web.config ファイルを保存します。

    この構成の変更は、Web アプリケーションで管理される XML Web サービスを次回要求したときに有効になります。

サービス ヘルプ ページ

Web ブラウザでパラメータを指定せずに XML Web サービスの URL に移動すると、クライアントで XML Web サービスのサービス ヘルプ ページを表示できます (XML Web サービスがそのように構成されている場合)。既定では、サービス ヘルプ ページには、XML Web サービスと通信する方法およびそのサービスが公開している XML Web サービス メソッドに関する情報が含まれています。サービス ヘルプ ページは単純な ASP.NET Web フォームであるため、企業ロゴなどの項目を含めるためにそのページを置き換えたり、変更したりできます。サービス ヘルプ ページのファイル名は構成ファイルの <wsdlHelpGenerator> XML 要素で指定されます。この要素の既定の設定は Machine.config ファイルで指定された DefaultWsdlHelpGenerator.aspx です。<protocols> XML 要素で Documentation プロトコルが指定されている構成ファイルのスコープ内の XML Web サービスに関するサービス ヘルプ ページだけ表示されます。既定では、Documentation プロトコルは Machine.config ファイルに指定されています。

個々の Web アプリケーションのサービス ヘルプ ページを無効にするには

  1. 任意のエディタで Web アプリケーションのルート ディレクトリにある Web.config ファイルを開きます。Web.config ファイルが存在しない場合は作成します。

  2. Web.config ファイルの webServices セクションを編集して、明示的に Documentation プロトコルを削除します。

    <webServices>
         <protocols>
           <remove name="Documentation" />
         </protocols>
    </webServices>
    
  3. Web.config ファイルを保存します。

    この構成の変更は、Web アプリケーションで管理される XML Web サービスを次回要求したときに有効になります。

    メモ   Documentation プロトコルを削除すると、Web アプリケーション内のすべての XML Web サービスについて WSDL ファイルの生成も無効になります。これによって、カスタム WSDL ファイルが作成され、クライアントに提供されている場合を除いて、クライアントでプロキシ クラスを生成できないようにすることができます。Web アプリケーション内の XML Web サービスに関する WSDL ファイルの生成を有効にし、XML Web サービスに関する情報をユーザーが判読できる形式で提供しない場合は、Web.config ファイルに <wsdlHelpGenerator> 要素を追加して、その href 属性を作成済みの空白の HTML ページに設定します。Web.config ファイルで、サービス ヘルプ ページを、Web.config ファイルが格納されているフォルダ内の docs フォルダにある MyBlank.htm ファイルに設定する部分のコード例を次に示します。

    <webServices>
       <wsdlHelpGenerator href="docs/MyBlank.htm"/>
    </webServices>
    

参照

XML Web サービスの配置 | XML Web サービスに対する探索の有効化 | ASP.NET を使用した XML Web サービスの作成