8

この問題は別のボードで始まりましたが、非常に迅速で親切なDave Wardもここにいるので、うまくいけばパズルの最後のピースとしてここで取り上げたいと思います。

基本的に、私は長いプロセスから Web ページを絶え間なく更新する方法を探していました。私は AJAX が最適だと思っていましたが、Dave がJavaScript の使用に関する素晴らしい記事を書いています。それをアプリケーションに統合したところ、クライアントではうまく機能しましたが、サーバー WebHost4Life では機能しませんでした。私は別のサーバー @ Brinkster を持っていて、そこで試してみることにしました。すべてのコードは、私のクライアント、WebHost4Life、および Brinkster で同じであるため、明らかに WebHost4Life で何かが起こっています。

私は彼らに電子メールを書くか、技術サポートを要求する予定ですが、積極的に行動し、彼らの最後に何が起こってこの違いを引き起こしているのかを突き止めたいと思います. のようなバッファリングをオフにするために、コードでできる限りのことを行いましたPage.Response.BufferOutput = False。この違いを引き起こすために実装できるサーバー設定は何ですか? 彼らの助けなしに、自分でそれを回避する方法はありますか? そうでない場合、彼らは何をする必要がありますか?

参考までに、私のアプリケーションのより単純なバージョンの動作中のバージョンへのリンクは @ http://www.jasoncomedy.com/javascriptfun/javascriptfun.aspxにあり、動作していない同じバージョンは @ http://にあります。 www.tabroom.org/Ajaxfun/Default.aspx。作業バージョンでは、各ステップで更新を取得しますが、そうでないバージョンでは、すべてが完了するまで長い間そこに留まり、その後クライアントへのすべての更新を一度に行います...そしてそれは私を悲しくさせます。

4

5 に答える 5

5

ねえ、ジェイソン。申し訳ありませんが、まだ問題が発生しています。

私がすることは、次のような単純なページを設定することです。

protected void Page_Load(object sender, EventArgs e)
{
  for (int i = 0; i < 10; i++) 
  {
    Response.Write(i + "<br />"); 
    Response.Flush();

    Thread.Sleep(1000);
  }
}

前に説明したように、@Page 宣言以外のマークアップが .aspx ファイルに含まれていないことを確認してください。これにより、通常は発生しないページのバッファリングが発生することがあります。

次に、技術サポート担当者にそのファイルを示し、目的の動作を説明します (10 回の更新、1 秒あたり 1 回)。簡単なテスト ケースを提供することで、これらの問題を解決するのに大いに役立つことがわかりました。

それが最終的にどうなるかを必ずお知らせください。ある種のインライン キャッシングまたはリバース プロキシを推測していますが、興味があります。

于 2008-08-25T17:41:10.967 に答える
3

バッファリングを強制できるかどうかはわかりませんが、あなたとサーバー間のリバース プロキシ サーバーはバッファリングに影響します (バッファはブラウザではなくプロキシの接続に影響するため)。

于 2008-08-24T13:26:19.697 に答える
2

IISも他のフィルターも応答を圧縮しようとしていないことを確認する必要があります。実稼働サーバーで.aspxサフィックスが付いたページなどの動的ページに対してIIS圧縮が有効になっている可能性がありますが、開発サーバーでは有効になっていません。

この場合、IISは、結果を圧縮してクライアントに返送する前に、応答全体(またはかなりのチャンク)を待機している可能性があります。

Fiddlerを使用して本番サーバーからの応答を監視し、応答がgzipで圧縮されているかどうかを確認することをお勧めします。

応答の圧縮が問題であることが判明した場合は、Content-Encoding:Identityヘッダーを介して、特定の応答の圧縮を無視するようにIISに指示できます。

于 2008-08-25T17:37:00.490 に答える
2

私はこれについて実りのない調査を行ってきましたが、それが役立つことを願って、私の考え方を共有します.

この場合、IIS はクライアントとサーバーの間に存在するものの 1 つです。そのため、それぞれのケースに関係する IIS のバージョンを知っておくと役立つ場合があります。繋がり。

お金にはなりませんが、IIS6 v IIS 5に関するこの記事は、私が考えている種類のものです。

于 2008-08-24T13:30:02.387 に答える