2012-04-06 9 views
2

私はjQueryから非同期的にヒットし、サービスから得られた結果に基づいてグリッドを更新する必要がある.NET Webサービスを持っています。私の問題は、ここでの私の.NETサービスメソッドがある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 
     }); 

以下のようにサービスのヒットは初回のみのための非同期(async)で、後続の要求は(=でも非同期を指定した後AJAX呼び出しでtrue)を同期している、ということです以下のようなものです。

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

サービスを常に非同期で呼び出す際にお手伝いしてください。どんな助けも高く評価されます。

答えて

5

あなたのWebMethod属性は、pageディレクティブに次のように持っているニーズに呼び出されているページ:

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

この理由は、それができないようにASP.NETがセッションにそれがアクセスされるたびにロックしていることです非同期に実行します。 WebMethodでセッションを使用しなくても、あなたがそれ以外のことを言わない限り、ページはデフォルトでそれを使用していると考えています。

編集:

あなたの問題はまた、あなたがEnableSession="true"を持っている可能性があります。それをfalseに設定するだけでよいでしょう。

+0

問題は、主にEnableSession = "true"であり、ページ指示文でEnableSessionState = "False"を使用していないためです。助けてくれてありがとう "jmein" !! – Praveen

+0

あなたの歓迎! WebMethodでEnableSession = "false"をするだけでした。私はあなたがWebMethodベースでWebMethodでそれを行うことができるかどうかはわかりませんでした。私は何か新しいことを学んだと思う。 :) –

関連する問題