2

奇妙な問題で立ち往生しています。環境:セッションの保存に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をサーバーに送信しますか?

4

0 に答える 0