[INFO] HTTP GET と HTTP POST はデフォルトで無効になる

文書翻訳 文書翻訳
文書番号: 819267 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料では、Web サーバーでの HTTP GET メソッドと HTTP POST メソッドに影響を与える、.NET Framework 1.1 の変更点について説明します。また、この新しい機能の回避策についても説明します。

詳細

.NET で接続される Web サービスでは、HTTP GET、HTTP POST、および SOAP の各プロトコルをサポートします。.NET Framework 1.0 では、デフォルトでこれら 3 つのプロトコルがすべて有効になっています。.NET Framework 1.1 では、デフォルトで HTTP GET と HTTP POST の両方が無効になっています。この変更は、セキュリティ上の理由によるものです。

Web サービスを .NET Framework 1.1 にアップグレードすると、HTTP GET や HTTP POST を使用して Web サービスを起動するアプリケーションが失敗し、次のエラー メッセージが表示されます。
System.Net.WebException
これは、要求の形式が認識されないことを示しています。

テスト フォームの HTML 版で HTTP POST を使用すると、上記の理由から .NET Framework 1.1 では動作しないことに注意する必要があります。後述するように、動作しないのは localhost 上でない場合です。

.NET Framework 1.1 では、HttpPostLocalhost という名前の新しいプロトコルが定義され、デフォルトで有効になっています。このプロトコルでは、HTTP POST 要求を使用する Web サービスを同じコンピュータのアプリケーションから起動することが許可されます。これは、POST URL が http://hostname ではなく http://localhost を使用している場合に許可されます。これにより、Web サービスの開発者は、テスト フォームの HTML 版を使用して、Web サービスが存在する同じコンピュータから Web サービスを起動することができます。

リモート コンピュータから Web サービスにアクセスしようとすると、[起動] ボタンが表示されません。また、次のエラー メッセージが表示されます。

テスト フォームは、ローカル コンピュータからの要求に対してのみ使用できます。

回避策

HTTP GET と HTTP POST は、Web サービスが存在する仮想ルートの Web.config を編集することで有効にできます。次の構成により、HTTP GET と HTTP POST の両方が有効になります。
<configuration>
    <system.web>
    <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>
別の方法として、Machine.config の <protocols> セクションを編集することで、コンピュータ上のすべての Web サービスに対して、これらのプロトコルを有効にできます。次の例では、HTTP GET、HTTP POST、および SOAP と localhost からの HTTP POST が有効になります。
<protocols>
	<add name="HttpSoap"/>
	<add name="HttpPost"/>
	<add name="HttpGet"/> 
	<add name="HttpPostLocalhost"/>
      <!-- Documentation enables the documentation/test pages -->
	<add name="Documentation"/>
</protocols>

関連情報

Web サービスの構成の詳細については、.NET Framework 1.1 ドキュメントの「<protocols> 要素」http://www.microsoft.com/japan/msdn/library/ja/cpgenref/html/gngrfprotocols.asp を参照してください。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 819267 (最終更新日 2003-04-24) を基に作成したものです。

この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。

プロパティ

文書番号: 819267 - 最終更新日: 2004年6月16日 - リビジョン: 1.1
この資料は以下の製品について記述したものです。
  • Microsoft .NET Framework 1.1
キーワード:?
kberrmsg kbinfo kbhttp kbwebserver kbwebclasses kbhtml KB819267
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com