2012-03-15 3 views
3

다음 코드 줄에서 오류가 발생합니다. 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.null을 테스트 할 때 왜이 NullReferenceException 오류가 발생합니까?

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

코드의 전체 블록 :

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

왜, 널 (null)에 대한 테스트에서, 나는이 오류를 받고 있어요?

enter image description here

+19

대부분 'Session' 자체가'null '입니다. –

+0

이 코드는 정확히 어디에 실행됩니까? Session이 null 인 이유에 대한 단서를 우리에게 줄 수 있습니다 ... – greg84

+0

ASMX 웹 서비스 또는 WCF입니까? –

답변

4

때문에 세션 N 개체 자체 널

난 당신이 당신이 웹 서비스에서 세션을 사용하는 경우 세션이 널 (null) *

확인이 aricle하는 이유는 웹 서비스의 사용을 생각 :Using Session State in a Web Service

+0

당신은 실제로 맞습니다. 그것의 웹 서비스. 내 다음 질문은 웹 서비스에서 Session을 사용하는 것이 가능한가? 그래도 다른 주제에 대한. 감사. – Kevin

+0

@Kevin - 나에게 붙여 넣은 기사 링크 확인 your issu 해결 –

10

귀하의 if 문 주위 잘못된 방법입니다. 인 경우이 값을 사용하려고합니다.

변경이이에

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

는 :

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

내가 먼저 그 문제를 해결하고, 그 문제가 해결되는지 확인 것입니다.

특정 라인에서 오는 예외 중 하나 때문에 수 있습니다 :

  • Session 변수가 null - 당신이 디버거에서이를 확인할 수 있습니다.
  • 컴파일 된 코드가 디버깅하는 데 사용하는 소스 코드와 다릅니다. 청소 및 재구성을 시도하십시오.
+1

+1 좋은 지점이지만이 특정 줄에 예외가 발생하지는 않습니다. –

+1

아담입니까? 그것은 else 블록 내게 사용되는 것 같습니다 ... – greg84

+0

@ greg84 그래, 예외적으로'if'에서 예외가보고되었으므로 궁금한데, 그래서 나는이 특정 줄에서 수정했습니다. –

관련 문제