ファイルをいじりながら、中global.asax.cs
にいくつかのコードを添付しました
protected void Session_Start(object sender, EventArgs e)
{
}
そして、Session_Start
クロムを使用しているときにリクエストごとに呼び出されていることに気付き始めました。Firefox を使用する場合、これは当てはまらず、1 回だけ呼び出されました。何が原因でしょうか?
注意してください、これは私の開発マシン上でのみです。コードをコンパイルして実行し、Firefox を開き、参照するhttp://localhost:63893/
とSession_Start
. Firefox でブラウジングしているときに、1 回しかヒットしませんSession_Start
。
chromeを開いてブラウズするhttp://localhost:63893/
と、ヒットしSession_Start
ます。次に、ログイン データを入力してログインを押すと、別の時間にヒットし、次のページの取得要求をロードしているときに別のSession_Start
時間にヒットします。カウンターを使って確認したところ、実際にその間に 3 つのユニークなセッションが作成されました。Session_Start
値が保存されていない場合、セッションが破棄されると述べているソースがいくつかあることを私は知っています。それは私にとっては素晴らしい説明ですが、そうではありません。私はこれを2つの方法で反証しました。
方法 1:
protected void Session_End(){} /*breakpoint*/
起動したことはありません。古いセッションがまだ存在していることを確認できます。
方法 2:
Session["KeepAlive"] = true;
の内部で使用して、それが呼び出されSession_Start
ないようにするかどうかを確認しましたが、そうではありませんでした。まだ呼ばれていませんでした。_Start
_End
2つの違いは何ですか、それとも私が間違ったことをしましたか?