2012-10-22 88 views
2

請幫助,因爲這一直是推動我自上週以來,堅果和我還沒有更接近解決方案...會議呼籲空

環境:IIS 7.5,.NET 4.0,jQuery的(最新)

我有一個內部的Web服務,我打電話來創建一個由許多客戶和他們的關係組成的層次結構對象。在我的web服務中,我將層次結構對象存儲在HttpContext.Current.Session中。

不久之後,在我的javascript I循環中,用戶可見的客戶。對於每個客戶,我調用一個$ .ajax函數來調用我的Web服務中的另一個過程。在C#代碼中,我從HttpContext.Current.Session中讀取我的層次結構對象,並使用linq讀取當前客戶的數據。

我的問題是HttpContext.Current.Session["hierarchy"]爲某些客戶返回null。即使我打電話完全相同的網址,每次都不是同一個客戶。

我已經嘗試從HttpContext.Current.Session之後立即讀取層次結構,只是爲了驗證我的層次結構對象中的所有內容是否實際寫入HttpContext.Current.Session

我試過記錄HttpContext.Current.Session.SessionId來驗證會話是否相同,並且所有內容都加起來。

我已提前與和沒有我的Default.apsx

感謝EnableSessionState想任何人誰可以指導我在正確的方向...

./CJ

回答

2

是您的網絡WCF服務?如果是這樣,除非啓用了asp.net兼容模式,否則根本沒有會話。

+0

這是WCF是的。我有aspNetCompatibilityEnabled =「true」。 – CJe

2

如果您使用的是ASMX Web服務(希望不是)一定要有每個方法上面下面:

[WebMethod(EnableSession = true)] 

否則,興是正確的關於WCF。我從經驗中知道,如果不手動打開ASP.NET會話,會話將返回null。

+0

它不是一個asmx。這是一個svc。我已經嘗試過包括WebMethod屬性,但沒有任何運氣:-(不是我的(Hierarchy)HttpContext.Current.Session [「hierarchy」]每次都返回null,它只有大約20%的時間,另外我應該提到我的代碼在本地和測試環境中完美地工作,這是造成問題的預生產環境 – CJe

+1

@ user1480182因此,您的客戶的20%始終都返回空值,或者您的所有客戶都返回空值的20%時間?如果在分配的過期時間範圍內沒有服務呼叫,則會話可能過期太快 – ROFLwTIME

+0

如果我循環了例如10個客戶,那麼幾次我會從(Hierarchy)HttpContext.Current返回空值。 Session [「hierarchy」]有時候兩個客戶會從(Hierarchy)HttpContext.Current.Session [「hierarchy」]中獲得null,但有時候會有四個或五個... – CJe