トップ回答者
同じIEのバージョンでHTMLソースの内容が異なる

質問
-
ASP.NET で作成したWebアプリケーションを、
IE8から表示させると、複数台あるうちの1台だけ、一部画面が崩れます。
htmlソースを比較すると、異なる事がわかりました。いろいろと違いはあるのですが、
例えば、正常に表示される方はselectタグに
style="height:112px;width:256px;"
がついているのですが、
画面が崩れる方には、上記記述がなかったりします。これは、どういう仕組みでこのような現象が発生しているのでしょうか?
また、同じソースを出力させるにはどのように対処すれば良いのでしょうか?宜しくお願いします。
[環境]
サーバWindows2003 IIS6
.NET Framework1.1 で作成したASP.NETアプリクライアントWindowsXP SP3
ブラウザIE8
回答
-
次のサイトに同じ話が書かれていました。
(読んでいただくのは最後の返信だけで良さそうです。)
.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
-
KB と修正パッチがでてました。
(追記:リンクがあったので簡単にパッチがダウンロードできると思ったのですが、じっくり読んでみると、サポートに連絡してパッチを入手する必要があるようです。)
[FIX] ブラウザーになるユーザー エージェント文字列には 256 バイトを超える文字が含まれている場合、ASP.NET 1. 1 の Web サイト参照できません。
http://support.microsoft.com/kb/974762/ja
すべての返信
-
早速のご返信、どうもありがとうございます。説明が悪く申し訳ありません。ご理解いただいている通りです。
XP SP3 + IE8 この組み合わせのPC5台で確認したのですが、うち1台だけが画面が崩れます。
それぞれのPCでhtmlソースを保存して比較してみたところ、画面が崩れるPCで出力したHTMLソースだけが他と異なりました。
Webプログラムから出力されるHTMLファイルは、クライアントの環境にかかわらず全て同じかと思っていました。
PCの問題とはどのような事が考えられますでしょうか?
その問題のPCは、別の開発で使用しており、.NET Framework 1.1 ~ 3.5、Visual Studio 2003~2008等がインストールされています。
このあたりが問題なんでしょうか?
よろしくお願いします。
-
ご返信どうもありがとうございます。返事が遅くなり申し訳ございません。
分かりづらい質問文で申し訳ありません。
少し補足させてもらいます。・XP SP3 + IE8 環境でのhtmlソースの比較は、
運用しているサーバ、Webアプリケーションのページ、全て同じ所で比較しています。・画面が崩れるとは、例えば、1行で表示させるべき所が、2行で表示されてしまう。
(問題のPCのhtmlソースはwidthの指定がないので、幅が足りず、折り返されている)
質問文にも記載させて頂きましたが、selectタグの幅が狭い。
(これもwidthの指定がhtmlソースにないので、幅が一番長い文字数の幅になっている)・問題のPCから出力されたhtmlソース+スタイルシートを、
正常なPCにコピーし、IEで表示させると当然崩れます。
(問題のPCと全く同じ画面になります)というような状況下において、なぜサーバから送られてくるhtmlソースが、
問題のPCだけ異なるのか、このような現象は仕様なのか、
という事が知りたいと思い質問させていただきました。あと、同じOS、ブラウザのバージョンにもかかわらず、
クライアントの環境次第で、サーバから送られてくるhtmlファイルが異なる
というのは、初めて知ったのですが、こういうものなのでしょうか?宜しくお願いします。
-
次のサイトに同じ話が書かれていました。
(読んでいただくのは最後の返信だけで良さそうです。)
.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
-
KB と修正パッチがでてました。
(追記:リンクがあったので簡単にパッチがダウンロードできると思ったのですが、じっくり読んでみると、サポートに連絡してパッチを入手する必要があるようです。)
[FIX] ブラウザーになるユーザー エージェント文字列には 256 バイトを超える文字が含まれている場合、ASP.NET 1. 1 の Web サイト参照できません。
http://support.microsoft.com/kb/974762/ja -
ご返信、どうもありがとうございます。
教えて頂いた通りのようです。問題のあるPCでユーザエージェント文字列の長さを調べたところ、269バイトありました。
正常なPCでユーザエージェント文字列の長さを調べたところ、全て256バイト以下でした。
問題のあるPCで、.NET Framework等をアンインストールし、
ユーザエージェント文字列の長さを256バイト以下にしたところ、今回問題になった現象は再現しなくなりました。
問題のあるPCに再度、.NET Framework等をインストールし、
ユーザエージェント文字列の長さを256バイトより多くしたところ、今回の現象が再現しました。現在運用中である為、サーバ側に修正パッチを適用するのは、すぐには行えませんが、
適用する方向で計画を立てたいと思います。ご返信をくださった皆様、どうもありがとうございました。