.NET TIPS

Webサーバのプロトコル違反による例外を回避するには?

デジタルアドバンテージ 遠藤 孝信
2010/04/01

 WebClientクラス(System.Net名前空間)やHttpWebRequestクラス/HttpWebResponseクラス(System.Net名前空間)を使ってWebページにアクセスする際、Webサーバによっては、ページが存在しブラウザで開くことができるにもかかわらず、「サーバーによってプロトコル違反が発生しました. Section=ResponseHeader Detail=CR の後には LF を指定しなければなりません。」というメッセージの例外が発生して、アクセスできない場合がある*

* 本稿執筆時点では、例えば、「ニセコ町のホームページ」など。

 これは、冒頭で挙げたクラスがWebサーバから返されるデータを厳密に検証した結果、HTTPプロトコルに違反している個所が見つかった場合に発生する例外である(実際に行われる検証内容については、「HttpWebRequestElement.UseUnsafeHeaderParsingプロパティの解説部分」に記述されている)。

 このような検証エラーを無視して(検証エラーによる例外を発生させずに)、Webサーバにアクセスするには、以下のような設定をアプリケーション構成ファイルに記述すればよい。これは、「安全でないヘッダ情報も解析して使用する」という設定だ。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.net>
    <settings>
      <httpWebRequest useUnsafeHeaderParsing="true" />
    </settings>
  </system.net>
</configuration>
プロトコル違反の検証エラーを無視するアプリケーション構成ファイルの設定

 具体的には、例えばアプリケーションの実行ファイルが「WinFormsApp.exe」であれば、「WinFormsApp.exe.config」というファイルを作成して、上記の内容を記述すればよい。

 Visual Studioで開発している場合には、プロジェクトに「アプリケーション構成ファイル(App.Config)」を追加し、そこに上記の内容を記述する。これにより、アプリケーションのビルド時に、適切なファイル名の.exe.configファイルが自動作成される。End of Article

利用可能バージョン:.NET Framework 2.0以降
カテゴリ:クラス・ライブラリ 処理対象:ネットワーク
使用ライブラリ:WebClient属性(System.Net名前空間)
使用ライブラリ:HttpWebRequest属性(System.Net名前空間)
使用ライブラリ:HttpWebResponse属性(System.Net名前空間)

この記事と関連性の高い別の.NET TIPS
サーバにより指定されたファイル名でファイルをダウンロードして保存するには?
Windowsフォームで構成ファイルによりプロパティ値を設定するには?
アプリケーション設定を活用するには?
VS 2005やIISを使用せずにWebアプリケーションを実行するには?
[ASP.NET]CustomValidatorコントロールでクライアント検証を有効にするには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間