奇妙な問題で立ち往生しています。環境:セッションの保存にAsp.net State Serverを使用しており、セッションのタイムアウトは20分です。シナリオでは、ページがリロードされるたびにJavaスクリプトからASP.NET_SessionIdCookieを更新しています。このような
var n = 'ASP.NET_SessionId' // cookie name
var v = app.cookies.get(n) // cookie value
var d = '.abc.com' // base domain to create domain level cookie
var e = 0.1666666666668 // 4 hrs
app.cookies.set(n, v, e, d) // my method to update cookies
問題は、IEでそのページを8つ以上のタブなどの複数のタブで開いたときに、[すべてのタブを更新]をクリックすると終了し(任意のタブを右クリックするとこのオプションが表示されます)、これを継続して実行すると、セッション期限切れメッセージで終了することです。 。
セッショントレースで、セッションIDが変更されていることがわかりました。そして、セッションIDを更新するこのロジックを削除すると、正常に機能します。これはIEでのみ発生し、Cromeやfirefoxでは発生しません。
私の質問は、なぜセッションIDが変更されるのですか?JSは時刻を更新するときにそのCookieをロックしますか?同じ場合、他のタブが更新を要求するとクラッシュし、IEは新しいセッションIDをサーバーに送信しますか?