2011-06-30 25 views
1

我在Global.asax.cs下面的代碼段中突出顯示的代碼行上得到了一個StackOverflowException異常,有人可以告訴我爲什麼會發生這種情況嗎?HttpContext.Current.Session給出一個StackOverflowException?

代碼:

public static HttpSessionState CurrentSession 
     { 
      get 
      { 
       if (HttpContext.Current == null) 
        return null; 
       return HttpContext.Current.Session; 
      } 
     } 

謝謝, 亞歷克斯。

+0

你可以發佈堆棧跟蹤嗎? – ata

+0

它沒有給我堆棧跟蹤,似乎發生在外部代碼或其他線程或東西。 –

+0

你確定調用你的屬性的代碼是不是經常拉它的值直到它不是* null? – MartinHN

回答

1

答案是事實: 「你的堆棧溢出在這裏沒有發生,也許發佈了調用這個函數的代碼---涉及堆棧溢出的代碼(因爲你可能從幾個地方調用了這個函數) - Eben Roux Jun 30 at 4:37「

它發生在請求CurrentSession的代碼中,但那只是它正在打破的那一行。

0

我在代碼示例中看不到確切的代碼行。它「感覺」像無盡的遞歸。我不知道會如何發生,除非會話以某種方式返回會話等等。可能不是問題,但這是一個想法。

相關問題