3

ロジスティクス会社向けに作成したASP.NET3.5アプリケーションがあります。これにより、顧客は配達/ジョブを入力してシス​​テムに取り込むことができます。

システムのコアページは、ご想像のとおり、[ジョブの追加]画面です。ユーザーがジョブを作成すると、この情報の一部がセッションに保存されます。次に、ジョブをコミットするとき、またはPage_Load要求がポストバックでない場合、セッションはクリアされ、次のジョブの準備が整います。

ごく一部のお客様に問題が発生しており、コミットが発生する前にユーザーセッションがワイプされているように見えます。ユーザーは、複数のセッション(つまり、同じページの2つのウィンドウ)を使用しようとしていないことを保証しています。 。そのページでセッションがクリアされるたびにログに記録されるエラートラップを挿入しました。Page_Loadイベントの「クリアセッション」は、送信をクリックする数秒前に発生しているようです。autopostbackこのページには多くのコントロールがあることに注意してください。

ASP.NETの癖、またはそのことに関するブラウザの癖はありますか?それは、IsPostbackプロパティが誤ってfalseになることを意味しますか?これは非常に散発的な問題であり、これを複製することはできません。

4

1 に答える 1

0

多くのコメントでアドバイスされているように、セッションは間違った解決策です。多くのことでリセットされる可能性があります(たとえば、アプリプールのリサイクル)。

ユーザーに別のブラウザやタブを使用しないように強制しないでください。そのため、正しい選択はデータをViewState/Control状態に移動することです。

なんらかの奇妙な理由でまだセッションにデータを保持する必要がある場合は、永続的なセッションストレージに切り替えることを検討してください(つまり、SQL Serverを使用します)。

于 2013-02-21T15:35:10.157 に答える