6

どのような状況でHttpContext.Current.Sessionがnullになる可能性がありますか?

いくつかのasp.netページがあります。

なぜSessionオブジェクトを常にnullと照合する必要があるのか​​疑問に思っていますか?

例えば

public static object GetSession(string key)
{

if (HttpContext.Current.Session != null)
{

return HttpContext.Current.Session[key];

}

return null;

}
4

3 に答える 3

4

このページを確認してください:現在の ASP.NET セッションが null の場合はどうすればよいですか? . 可能性についてのかなり良い説明があります。

編集

Session オブジェクトが利用可能かどうかが不明で、そこから値にアクセスしたいという状況に陥ることはめったにありません。他の回答で言及されているものを含むほとんどの場合、HttpContext.Current.Session[key]は null になりますが、HttpContext.Current.Session自体ではありません。

ほとんどの日常的なコーディング シナリオでは、Session オブジェクトは null にならず、質問のコードは過剰になります。同様に、Session オブジェクトが事前に null であることがわかっている場合は、それにアクセスしようとしてもいけません。

アプリケーションが、null である場合もそうでない場合もある異常なシナリオで Session オブジェクトにアクセスしている場合、上記の参照された質問で説明されているように、コードはそれを処理するための適切な方法です。

于 2012-10-31T15:28:09.720 に答える
2
  • IIS がリセットされると、セッションは null になります。
  • セッション タイムアウトが期限切れになると、null になります。
  • 他の理由もあるかもしれません。

それをチェックするポイントは、セッションが null の場合にページが醜い NullReferenceException をスローしないようにすることです。これは、null かどうかを確認すると、ページのセッションを更新したり、ログイン ページにリダイレクトしたりできます。

于 2012-10-31T15:29:15.387 に答える
0

web.config で sessionState がオフになっている場合、おそらく null になります。

 <configuration>
  <system.web>
    <sessionState mode="Off" />
  </system.web>
</configuration>
于 2012-10-31T15:27:21.497 に答える