none
HTTP 400正しくない要求が表示される RRS feed

  • 質問

  • はじめまして。

     

    ASP.NET(2.0)で作成しています。

    大量の入力コントロール(asp:text)と登録ボタンを配置した画面を作成しています。
    納品先の環境+IE7でのみ登録ボタン押下時に「HTTP 400正しくない要求」のエラーページが表示される現象に見舞われています。


    以下にエラーが出た際のHTTPリクエスト(不要と思われる分は削除ずみ)を載せます。
    ※Accept-Encodingの末尾にゴミのようなデータがのっていました。

     

    ----ここから----

    POST /xxx.aspx?cd=9999999&flg=C HTTP/1.1
    Content-Type: multipart/form-data; boundary=---------------------------7d83af37d064e
    Accept-Encoding: gzip, deflate・ィ爬・・爬・・爰・刈爰矩リ鋐・・茨ソソ
    User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
    Content-Length: 266020

    ----ここまで----


    現象としましては
    ・Accept-Encodingの末尾にゴミが出ない場合もある
    ・Accept-Encodingの末尾にゴミが出ても正常にいく場合もある
    ・ゴミデータは毎回変わる
    ・大量の入力コントロールを配置している画面以外では出たことはない
    ・IE6、Firefox1.5と2、Netscape7では現象は再現しない

     

    という状況です。
    なお、ゴミは大体意味不明な値なのですが、一度だけ遷移前のページのjavascriptの一部がのっていたことがありました。。。


    このような現象の回避策、お心当たりあれば助言願います。

    2008年4月15日 5:37

回答

  • 的を外しているかもしれませんが、何点か確認させて下さい。

     

    ・ IISのバージョンは、6.0 で宜しいでしょうか?

    ・ 大量コントロールが含まれている画面には、長いQueryStringや、URL中にマルチバイト文字(MBCS)になりえる文字が

      含まれたりしていますか?

     

    なお、URLにMBCSを含む文字列でアクセスすると、IIS6の場合、Bad Request / HTTP 400 ステータス が

    返されることがあるので、まずはその点問題ないか、ご確認頂けると幸いです。

    (詳細は、http://support.microsoft.com/default.aspx?scid=kb;ja;905897 をご確認頂ければと思います)

     

    また、決定的な解決策とは言えないのですが、サーバーコントロールを1画面内に多数使用している場合は、

    ViewSateに保存するコントロールの量を可能な限り減らしてみるといいかもしれません。

    (ViewStateに保持する必要のないサーバーコントロール(PostBack後、特に使用しないコントロール)

     については、EnableViewStateプロパティをFalseにします。画面項目数が多いということなので、

     解決策に結び付けばいいのですが・・・)

     

    決定的なことが言えず、大変恐縮ですが上記事項、ご確認頂けると助かります。

    宜しくお願いします。

    2008年4月16日 6:13

すべての返信

  • 的を外しているかもしれませんが、何点か確認させて下さい。

     

    ・ IISのバージョンは、6.0 で宜しいでしょうか?

    ・ 大量コントロールが含まれている画面には、長いQueryStringや、URL中にマルチバイト文字(MBCS)になりえる文字が

      含まれたりしていますか?

     

    なお、URLにMBCSを含む文字列でアクセスすると、IIS6の場合、Bad Request / HTTP 400 ステータス が

    返されることがあるので、まずはその点問題ないか、ご確認頂けると幸いです。

    (詳細は、http://support.microsoft.com/default.aspx?scid=kb;ja;905897 をご確認頂ければと思います)

     

    また、決定的な解決策とは言えないのですが、サーバーコントロールを1画面内に多数使用している場合は、

    ViewSateに保存するコントロールの量を可能な限り減らしてみるといいかもしれません。

    (ViewStateに保持する必要のないサーバーコントロール(PostBack後、特に使用しないコントロール)

     については、EnableViewStateプロパティをFalseにします。画面項目数が多いということなので、

     解決策に結び付けばいいのですが・・・)

     

    決定的なことが言えず、大変恐縮ですが上記事項、ご確認頂けると助かります。

    宜しくお願いします。

    2008年4月16日 6:13
  • けろ-みおさん、ありがとうございます。


    >>・ IISのバージョンは、6.0 で宜しいでしょうか?
    書き忘れていました、サーバはWindows 2003 Server std、IIS 6.0です。
    クライアントはWindows XP SP2、IE7でした。


    >>・ 大量コントロールが含まれている画面には、長いQueryStringや、URL中にマルチバイト文字(MBCS)になりえる文字が
    >>  含まれたりしていますか?
    QueryStringは一番長いときで20バイト程度でASCIIのみでした。


    確かにViewStateは非常に大きくなってしまっているので、一度試してみます。ありがとうございます。
    (Content-Lengthが250~300KBもあり、ViewStateが200KB近くもありました。。。)

    2008年4月17日 7:42
  • こんにちは。フォーラムオペレータの栗原麻里 です

     

    けろ-みお さん、回答ありがとうございます。

     

    y-yagi さん、フォーラムのご利用ありがとうございます。

    その後いかがでしょうか?
    有用な情報だと思いましたので、けろ-みお さんの回答へ回答済みチェックをつけさせていただきました。

     

    回答済みチェックが付くことにより、フォーラムをご利用していただいている皆様が、有用な情報を
    見つけやすくなります。
    回答された情報が有用だと思われましたら、ぜひ回答済みボタンを押してチェックを付けて
    くださいね!

     

    y-yagi さんはチェックを解除することもできますので、ご確認ください。

     

    それでは、ぜひまたご活用ください!

     

    2008年4月22日 5:36