- - PR -
ASPでwin98では表示されるが2000、XPでは表示されない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-12-14 13:25
ASP.netではなくASPなのですが会議室がないので
ここで質問させていただきます。 WindowsNT4.0で動かしていたIIS上のASPのプログラムを Windows2003ServerのIISに乗せかえました。 そうすると大量のデータを表示する際 (Oracleにてデータを取得しテーブルにて表示) クライアントがWindows98なら最後まで表示されるのですが Windows2000およびXPの場合表示されず、延々読み込み中になります。 途中で中止すると読み込んだ途中のレコードまでが表示されます。 大量といってもデータは数百件であり、 98でも見ることができるし2000、XPでは中止すれば途中まで 表示されるので、ソースが間違っているわけでもなさそうです。 また同じページで件数を絞ると完全に表示されます。 ためしにWindows2000でFireFoxで開いたところ同様に 途中のレコードまで表示したところでとまったままになります。 止まるレコードはいつも一定ではなく データ事態に問題ある文字列が入っていることもないようです。 同様の現象をご存知の方 ご指導いただけましたら幸いです。 | ||||
|
投稿日時: 2006-12-14 22:47
おそらくはASPのバグじゃないかと・・・
NT4.0からServer2003にしたという事は、Oracleのバージョンも当然あがっているよね。Oracleってバージョンが変わると挙動が違うときが良くあるので・・・(^^; まずは地道にデバッグして、何処でループしているのか確認してください。 _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ | ||||
|
投稿日時: 2006-12-15 10:05
NTの環境がまだあるのなら、2003とNTで同じ結果が得られる状態にして、
得られる結果(ブラウザの表示ではなくHTMLソース)の相違点を確認してみては? | ||||
|
投稿日時: 2006-12-15 11:07
甕星さん ひろ@yaさん 回答ありがとうございます。
バージョンは確かに8.1.7から9.2.0にあがっています。 しかしOracleのセッションで確認したところ、 結果は返してきておりそれ以降のところでおかしいようです。 データを読み込んでから、テーブルに表示するデータを ASPのソース内でループして作成しているのですが 読み込み途中のソース表示を行うと、かなり中途半端な所で止まっている状態です。 いつも同じ所で止まっているわけではなく、その時により場所は異なります。 ちなみにループ内にResponse.Flushを入れるとすべて表示されました。 なにか表示するまでの間、どこかのBufferで作業しているのが溢れたり しているのでしょうか?98ではそのBufferを使わないとか・・・ 一応98はIE6.0を使用しています。 サーバーのIISのバージョンによってBuffer出力の設定は変わると思いますが クライアントのOSバージョン違いで異なるものなんでしょうか? 一応Response.Flushにて解決はしたのですが 仕組みわからず正常稼動も気持ち悪いので ちょっといろいろ調べてみたいと思います。 | ||||
|
投稿日時: 2006-12-16 04:28
Response.buffer (ASP) が False に設定されている時、TCP/IP の接続が切断される
あと、IIS 6.0 では buffering の最大 size が metabase で制限されているため、大量の結果を返す場合には、小分けにして client に送信するように coding するよう心がけるべきでしょう。 |
1