2016-04-22 10 views
9

私たちはしばらくの間、データがSQLデータベースに保存されているという問題を抱えています。aspnet_stateサービスを使用してセッションが壊れています

レコードが残りの行と一致しないデータと一緒に保存されることもあります。ある時点のように見えます。データはデータベースに渡される前に別のユーザーのデータと交換されています。 。

トランザクションスコープは、隔離レベルがReadCommittedであり、データの整合性の問題はデータベースレベルではなくアプリケーション内にあると考えられます。

セッションを頻繁に使用しています。壊れたデータの時刻が、その日のシステムに更新プログラムを配備した時刻と似ていると考え始めています。

aspnet_stateサービスを使用して、アプリケーションを再起動してセッションを維持します。

ユーザは端末セッションに依存しているため、複数のユーザがすべて同じサーバにログインし、ブラウザを使用してシステムを起動します。

過去に、同じドメインの資格情報でログインしているユーザーに注目しましたが、今やユーザーが一意のアカウントでログインすることは比較的確実です。

データの99.9%は正しいものですが、この断続的なデータの完全性の問題を引き起こす可能性があるものを理解することは苦労しています。

私たちは現在、配備を勤務時間外に限定していますが、これは必ずしも可能ではありません。

これはどうして起こっているのでしょうか?

EDIT:私たちは今、私は最近、これを戦ってきたSQL query returns incorrect value in multi user environment

答えて

2

を参照して、DALの層にこれを分離!と書き戻されるデータの95%の周りにあなたに同様の問題があった正しかったです。私は様々な理由を見て、ネットワーク上のユーザーの中にはChromeをダウンロードしてChrome内でレコードを開いている主な原因があり、Chromeがセッションを無視するためにセッションIDを破っていた理由を調べました。

もう1つは、ユーザーがブラウザを閉じていないか、アプリケーションをログオフしていなかったか、同じユーザーかまったく別のユーザーがセッションIDを選択して使用できることでした。

ブラウザチェックを導入してChromeを拒否した後、ログオフするようにユーザーに教えると、外出中の忙しい時間帯に更新を行い、問題はほぼなくなりました。

キャッシングを防ぐために、ユーザーとカーネルが出力キャッシュでキャッシングをオフにすることについては、IIS上でも言及していませんでした。

関連する問題