none
同じIEのバージョンでHTMLソースの内容が異なる RRS feed

  • 質問

  • ASP.NET で作成したWebアプリケーションを、
    IE8から表示させると、複数台あるうちの1台だけ、一部画面が崩れます。
    htmlソースを比較すると、異なる事がわかりました。

    いろいろと違いはあるのですが、
    例えば、正常に表示される方はselectタグに
    style="height:112px;width:256px;"
    がついているのですが、
    画面が崩れる方には、上記記述がなかったりします。

    これは、どういう仕組みでこのような現象が発生しているのでしょうか?
    また、同じソースを出力させるにはどのように対処すれば良いのでしょうか?

    宜しくお願いします。


    [環境]
    サーバWindows2003 IIS6
    .NET Framework1.1 で作成したASP.NETアプリ

    クライアントWindowsXP SP3
    ブラウザIE8

    2010年11月25日 9:41

回答

  • 次のサイトに同じ話が書かれていました。
    (読んでいただくのは最後の返信だけで良さそうです。)

    .net 1.1 web application displays pages different on identical machines?
    http://forums.asp.net/p/1493418/3515610.aspx

    複数の .NET のバージョンのインストール等によって「User-Agent HTTP ヘッダー」が長くなると、.NET 1.1 では適切に判定処理がなされず、その結果デフォルトの HTML 3.2 で出力されてしまうようです。

    その返信に <browserCaps> のことが書かれていたので以下も見たのですが、
    私には理解できませんでした。。

    browserCaps 要素 (ASP.NET 設定スキーマ
    http://msdn.microsoft.com/ja-jp/library/sk9az15a(VS.80).aspx

    • 回答としてマーク 山本春海 2010年11月30日 9:01
    2010年11月26日 1:02
  • KB と修正パッチがでてました。
    (追記:リンクがあったので簡単にパッチがダウンロードできると思ったのですが、じっくり読んでみると、サポートに連絡してパッチを入手する必要があるようです。)

    [FIX] ブラウザーになるユーザー エージェント文字列には 256 バイトを超える文字が含まれている場合、ASP.NET 1. 1 の Web サイト参照できません。
    http://support.microsoft.com/kb/974762/ja

     

    • 編集済み TH01 2010年11月26日 1:33 追記
    • 回答としてマーク 山本春海 2010年11月30日 9:04
    2010年11月26日 1:28

すべての返信

  • > IE8から表示させると、複数台あるうちの1台だけ、一部画面が崩れます。

    どういう意味でしょう? 複数ある XP SP3 + IE8 の PC の内 1 台だけの
    問題なのでしょうか? であれば、その PC の問題ということはありませ
    んか?

    2010年11月25日 12:15
  • 早速のご返信、どうもありがとうございます。説明が悪く申し訳ありません。ご理解いただいている通りです。

    XP SP3 + IE8 この組み合わせのPC5台で確認したのですが、うち1台だけが画面が崩れます。

    それぞれのPCでhtmlソースを保存して比較してみたところ、画面が崩れるPCで出力したHTMLソースだけが他と異なりました。

    Webプログラムから出力されるHTMLファイルは、クライアントの環境にかかわらず全て同じかと思っていました。

    PCの問題とはどのような事が考えられますでしょうか?

    その問題のPCは、別の開発で使用しており、.NET Framework 1.1 ~ 3.5、Visual Studio 2003~2008等がインストールされています。

    このあたりが問題なんでしょうか?

    よろしくお願いします。

    2010年11月25日 12:38
  • > XP SP3 + IE8 この組み合わせのPC5台で確認したのですが、う
    > ち1台だけが画面が崩れます。

    ファイルが壊れているとか、その PC 固有の問題で、ASP.NET の問題
    ではないのでしょうか?

    2010年11月25日 13:06
  • ご返信どうもありがとうございます。返事が遅くなり申し訳ございません。

    分かりづらい質問文で申し訳ありません。
    少し補足させてもらいます。

    ・XP SP3 + IE8 環境でのhtmlソースの比較は、
     運用しているサーバ、Webアプリケーションのページ、全て同じ所で比較しています。

    ・画面が崩れるとは、例えば、1行で表示させるべき所が、2行で表示されてしまう。
     (問題のPCのhtmlソースはwidthの指定がないので、幅が足りず、折り返されている)
     質問文にも記載させて頂きましたが、selectタグの幅が狭い。
     (これもwidthの指定がhtmlソースにないので、幅が一番長い文字数の幅になっている)

    ・問題のPCから出力されたhtmlソース+スタイルシートを、
     正常なPCにコピーし、IEで表示させると当然崩れます。
     (問題のPCと全く同じ画面になります)

    というような状況下において、なぜサーバから送られてくるhtmlソースが、
    問題のPCだけ異なるのか、このような現象は仕様なのか、
    という事が知りたいと思い質問させていただきました。

    あと、同じOS、ブラウザのバージョンにもかかわらず、
    クライアントの環境次第で、サーバから送られてくるhtmlファイルが異なる
    というのは、初めて知ったのですが、こういうものなのでしょうか?

    宜しくお願いします。

     

    2010年11月26日 0:55
  • 次のサイトに同じ話が書かれていました。
    (読んでいただくのは最後の返信だけで良さそうです。)

    .net 1.1 web application displays pages different on identical machines?
    http://forums.asp.net/p/1493418/3515610.aspx

    複数の .NET のバージョンのインストール等によって「User-Agent HTTP ヘッダー」が長くなると、.NET 1.1 では適切に判定処理がなされず、その結果デフォルトの HTML 3.2 で出力されてしまうようです。

    その返信に <browserCaps> のことが書かれていたので以下も見たのですが、
    私には理解できませんでした。。

    browserCaps 要素 (ASP.NET 設定スキーマ
    http://msdn.microsoft.com/ja-jp/library/sk9az15a(VS.80).aspx

    • 回答としてマーク 山本春海 2010年11月30日 9:01
    2010年11月26日 1:02
  • KB と修正パッチがでてました。
    (追記:リンクがあったので簡単にパッチがダウンロードできると思ったのですが、じっくり読んでみると、サポートに連絡してパッチを入手する必要があるようです。)

    [FIX] ブラウザーになるユーザー エージェント文字列には 256 バイトを超える文字が含まれている場合、ASP.NET 1. 1 の Web サイト参照できません。
    http://support.microsoft.com/kb/974762/ja

     

    • 編集済み TH01 2010年11月26日 1:33 追記
    • 回答としてマーク 山本春海 2010年11月30日 9:04
    2010年11月26日 1:28
  • ご返信、どうもありがとうございます。
    教えて頂いた通りのようです。

    問題のあるPCでユーザエージェント文字列の長さを調べたところ、269バイトありました。
    正常なPCでユーザエージェント文字列の長さを調べたところ、全て256バイト以下でした。
    問題のあるPCで、.NET Framework等をアンインストールし、
    ユーザエージェント文字列の長さを256バイト以下にしたところ、今回問題になった現象は再現しなくなりました。
    問題のあるPCに再度、.NET Framework等をインストールし、
    ユーザエージェント文字列の長さを256バイトより多くしたところ、今回の現象が再現しました。

    現在運用中である為、サーバ側に修正パッチを適用するのは、すぐには行えませんが、
    適用する方向で計画を立てたいと思います。

    ご返信をくださった皆様、どうもありがとうございました。

    2010年11月26日 4:13