ここでもっと具体的にできたらいいのですが、残念ながらこれは難しいかもしれません。基本的に、これが「よく知られた」タイムアウトまたはセットアップの問題であることを願っています。
工場の画面で (JS/html - ASP.net プロジェクト) Web サイトの概要を実行している Web サイトがあります。この画面にはキーボードがないため、ページを永久に更新し続ける必要があります。おそらく何年も (1 週間で十分かもしれませんが)。(工場の作業員が搬入搬出などを確認するために使用)
これはすべて完全に機能します。サイトは継続的に更新され、新しい正しいデータを取得します。その後、朝になると、この「概要」画面にデータが表示されず、ワーカーは単純な更新ボタンまたは F5 キーを使用してサイトを手動で更新する必要があり、これですべてが修正されます。
エラーを自分で再現しようとして、次のようないくつかのことを試しました。
- インターネット接続を切断し、タイムアウトにする他の多くの方法 (ブレークポイント、サービスの停止など)。
- setInterval の更新時間を 100 ミリ秒に設定し、サイトを 3 ~ 5 分間実行します。(通常のタイマーは1分です)
- setInterval は、私が行ったインターネット検索によると、永久に実行する必要があります。
- 省電力設定で「JavaScript頻度」を下げていないことを確認しました。
何があっても; インターネットケーブルなどを再度接続するとすぐに、サイトは更新なしで正しい機能を再開します-エラーを再現できません.
Web サイトはバックエンドの WCF サービスとプロジェクトの統合に依存していますが、ワーカーが単純な更新でこれを修正しているため、これはクラッシュしていないと思います。
編集: エラーを再現しようとしたブラウザは IE/win7 でした。明日ファクトリーについて聞いてみますが、IE/winでしょうか?また。
実際に setInterval は本当に無限ですか、それとも他に何か問題がありますか?
すべての助けに感謝します。
更新: サイト更新コードの catch 句にブレークポイントを設定してデバッグ モードで実行している Web サイトを離れた後、今朝来ました。2分ありました。タイムアウト エラー (夜間にサーバーのクリーンアップがビジー状態になる可能性があります) が発生し、その後、次の行で null 参照エラーが発生します。
var showHistory = (bool)Session.Contents["ShowHistory"];
労働者のようなリフレッシュで修正しました。サーバーにpingを実行し続けていますが、セッションタイムアウトである可能性があると考えています.工場。後で最終的な解決策をお知らせします。
更新 2: テストは進行中です。
更新 3: 工場は IE 9、テスト マシンは IE 7、私のマシンは IE 9 です。エラーは IE7 で見られましたが、週末の実行後に IE9 では見られませんでした。重要な data_binding コードで ajax キャッシュをオフにしようとしましたが、何もしませんでした。メモリ リークのテストを行ったところ、1 分間に 100 回更新すると、まともなリークが発生することがわかりました。それが問題だとは思いませんが、リフレッシュすると使用されたメモリがクリーンアップされました。
ここで、自動更新を試します。