3

jQuery から非同期にヒットし、サービスから取得した結果に基づいてグリッドを更新する必要がある .NET Web サービスがあります。ここでの私の問題は、以下に示すように、サービス ヒットが初めてのみ非同期であり、後続の要求が同期されることです (ajax 呼び出しで async=true を指定した後でも)。

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()
{
}

そのため、サービスを常に非同期で呼び出すのを手伝ってください。どんな助けでも大歓迎です。

4

1 に答える 1

6

WebMethod が呼び出されるページでは、Page ディレクティブに次のものが必要です。

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

これは、ASP.NET がセッションにアクセスするたびにセッションをロックし、非同期で実行できないようにするためです。WebMethod でセッションを使用しない場合でも、特に指定しない限り、ページはデフォルトでセッションを使用していると見なします。

編集:

あなたの問題は、EnableSession="true". false に設定するだけでよい場合があります。

于 2012-04-06T16:08:53.393 に答える