2012-08-26 68 views
0

我有一個應用程序,我正在從Js調用webmethod。jquery c#webmethod

$.ajax({ 
    type: "POST", 
    url: "mypage.aspx/MyWebMethod", 
    .... 
    .... 
    }); 

在我的C#的webmethod我已經設置

[WebMethod(EnableSession = true)] 

的問題是很奇怪的,我甚至DONOT知道,如果它是一個jQuery或C# 或服務器設置的問題。

問題: 當我運行網頁並開始使用應用程序時,一切工作正常。 但是,如果我只是保持網頁打開(如5分鐘) 並且不要做任何事情,然後嘗試使用該應用程序,ajax調用失敗。

有人可以讓我知道問題可能是什麼?

+1

好吧,試試這個:啓動服務器(F5),並做你的ajax調用。然後等待5分鐘,或者無論花費多長時間停止工作,然後嘗試在服務器上打開一個頁面,然後查看它是否加載。然後,不刷新你的第一頁,做ajax調用,看看它是否工作。 – Jeff

+1

你正在使用一個帶有EnableSession = true的webmethode,並且你的會話可能在5分鐘後過期,因此你的ajax調用失敗時考慮使會話的失效日期更長 – Sora

+0

@Sora ...我如何讓會話最後一次長..? – pessi

回答

0

它可能是ASP會話過期,並且您正在獲取HTTP 401或類似的。

您既可以處理您的ajax error{}回調,也可以考慮variousworkarounds將會話保持在後臺。

1

強烈建議您更改此:

[WebMethod(EnableSession = true)] 

要這樣:

HttpContext.Current.Session 

這樣使用(EnableSession = true) 我測試了我自己並沒有什麼問題,你不需要

祝你好運!