ファイルをいじりながら、中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つの違いは何ですか、それとも私が間違ったことをしましたか?