2012-03-15 12 views
3

次のコード行でエラーが発生します。オブジェクト参照がオブジェクトのインスタンスに設定されていません。nullをテストするときにこのNullReferenceExceptionエラーが発生するのはなぜですか?

if (Session["AutoCompleteCustomersPhone"] != null) 

コードの完全なブロック:

if (Session["AutoCompleteCustomersPhone"] != null) 
    earchCustomerPhone = true; 
else 
{ 
    searchCustomerPhone = 
     bool.Parse(Session["AutoCompleteCustomersPhone"].ToString()); 
} 

はなぜ、ヌルのためのテストでは、私はこのエラーを受け取るのですか?

enter image description here

+19

ほとんどの場合、 'Session'自体は' null'です。 –

+0

このコードはどこで正確に実行されますか?なぜSessionがnullであるのかというヒントを与えるかもしれません... – greg84

+0

これはASMX Webサービス、つまりWCFですか? –

答えて

4

チェック

*私はあなたがセッションがnullの理由でWebサービスを利用していると思う

sessionnオブジェクト自体がnullこのためaricleあなたはWebサービスでセッションを使用している場合、 :Using Session State in a Web Service

+0

本当に正しいです。そのWebサービス。私の次の質問は、WebサービスでSessionを使用することが可能なのでしょうか?しかし、それは別の話題です。ありがとう。 – Kevin

+0

@Kevin - あなたのissuを解決する記事リンクを貼り付けてください –

10

あなたif文は、周りの間違った方法です。 の場合、値を使用しようとしています。

変更この:これに

if (Session["AutoCompleteCustomersPhone"] != null) 

は:

if (Session["AutoCompleteCustomersPhone"] == null) 

私が最初にそれを修正し、それが問題を解決するかどうかを確認したいです。

その特定ラインからの例外はどちらかの理由が考えられます:

  • Session変数がnullである - あなたは、デバッガでこれを確認することができます。
  • コンパイルされたコードは、デバッグに使用しているソースコードとは異なります。クリーニングと再構築を試してください。
+1

+1良いスポットですが、この特定の行では例外が発生しません。 –

+1

本当にアダムですか?それは私には他のブロックで使用されているように見える... – greg84

+0

@ greg84他にも、奇妙な理由は、例外が 'if'で報告されているので、私はこの特定の行に修正されました。 –

関連する問題