従来の ASP ページに問題があり、3 日経っても解決できません。
ページはセッションで動作しています - Request.ServerVariables("HTTP_COOKIE") で ASPSESSIONID Cookie が 2 回設定されることがあります。これにより、ページが更新されたときに、ASP ページが 2 つのセッション間でジャンプします。
現在の SessionId、サーバー ソフトウェア、および HTTP_COOKIE 値を出力するテスト ページを作成しました。
サンプル出力:
セッション ID: 308542840
セッション タイムアウト: 20 分
サーバー ソフトウェア: Microsoft-IIS/6.0
HTTP_COOKIE: ASPSESSIONIDQCBATRAD=MBHHDGCBGGBJBMAEGLDAJLGF; ASPSESSIONIDQCCDTTCB=PGHPDGCBBPLKALGGKIPOFIGDM
ASPSESSIONID が 2 つあるのはなぜですか? ページを更新すると、2 つのセッション ID のいずれかがランダムに出力されます。
これは IE9 の問題を示すスクリーンキャストです: http://prinz-alexander.at/asp_test.avi
このエラーは ie8 と ie9 でよく発生します。
問題を再現するには、次の手順を実行してください。
- IE8またはIE9を完全に閉じます
- IE8 または IE9 を起動し、http: //www.pfiffikus.at/pfiffikus/tests/ を開きます。
- ページがロードされた直後に、ページを複数回更新します
この手順を繰り返すと、ランダムに (常にではありません) HTTP_COOKIE に 2 つの異なる ASPSESSIONID が入力されます。
asp テスト ファイルは、mentiod 値のみを出力しており、ソース コードでは他に何も起こっていません。
これは、asp テスト ファイルのコードです。
<% If trim(Session("test_val")) = "" Then
Dim my_num
Randomize
number = Int((rnd*1000))+1
Session("test_val") = number
End If
%>
<b>Session ID:</b>
<% response.write(Session.SessionId) %><br /><br />
<b>Session("test_val"):</b>
<% response.write(Session("test_val")) %><br /><br />
<b>Session Timeout:</b>
<% response.write(Session.Timeout) %> minutes<br /><br />
<b>Server Software:</b>
<% response.write(Request.ServerVariables("SERVER_SOFTWARE")) %><br /> <br />
<b>HTTP_COOKIE:</b> <% response.write(Request.ServerVariables("HTTP_COOKIE")) %>
Cookie で複数の ASPSESSIONId を回避するにはどうすればよいですか?
助けてくれてありがとう!