2012-04-06 82 views
2

我有一個.NET webservice,我需要從jQuery異步點擊,並根據從服務獲得的結果更新網格。這裏我的問題是,服務命中是異步只首次和隨後的請求是同步(即使指定異步後=在AJAX調用真實)如下所示jquery「async = true」調用.net Web服務不能異步工作

jQuery.ajax({ 
      type: "POST", 
      url: url, 
      data: data, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      async: true, 
      success: function(msg) { 
       var result = msg.d; 
       return callback(result); 
      }, 
      error: $.callDotNetSM.onError 
     }); 

我的.NET服務的方法是像下面的東西。

[WebMethod(EnableSession = true)] 
public static string GetData() 
{ 
} 

所以,請幫助我一直在異步地調用服務。任何幫助,高度讚賞。

回答

5

您的WebMethod被稱爲上需要頁面在Page指令如下:

<%@ Page Async="true" EnableSessionState="False" %> 

這樣做的原因是,ASP.NET每次被訪問時鎖定會議,使其不能異步運行。 即使您沒有在您的WebMethod中使用Session,該頁面仍然認爲它默認使用它,除非您另行說明。

編輯:也可能是

你的問題,你有EnableSession="true"。您可能只需將其設置爲false即可。

+0

準確地說,我的問題主要是由於EnableSession =「true」,而不是在頁面指令中使用EnableSessionState =「False」。非常感謝幫助「jmein」!! – Praveen 2012-04-06 16:19:23

+0

歡迎您!所以你需要做的只是在WebMethod上的EnableSession =「false」?我不知道你可以通過WebMethod的方式在WebMethod上做到這一點。我想我也學到了一些新東西。 :) – 2012-04-06 16:22:17