Вызовы jQuery Ajax к веб-сервису кажутся синхронными

У меня есть два ajax-вызова к веб-сервису из jquery.

Первый звонок (GetMessages) начинает интервал в JavaScript (setInterval) и возвращает строковый массив сообщений, хранящихся в переменной сеанса.

Второй звонок (UploadUsers) загружает пользователей и сохраняет статус в сеансе для возврата в методGetMessages, Поэтому UploadUsers добавляет сообщения в сеанс, а GetMessages извлекает сообщения и отображает их для клиента.

Проблема в том, что хотя я вызываю оба метода асинхронно,GetMessages ждет покаUploadUsers закончен. Он просто загружается.

Я даже помещаю thread.sleep между каждым добавляемым пользователем, и я ожидаюGetMessages return «добавлено 1/10 пользователей», «добавлено 2/10 пользователей», каждый по отдельности.

Что происходитGetMessages ничего не возвращает, покаUploadUsers заканчивается, а затем приносит весь текст сразу.

У меня есть много кода, поэтому я не знаю, что поставить, но здесь это идет:

UploadUsers.aspx

callAsynchMethod('ClientStatusHandler.asmx/GetMessages',
'', printMessages, stopPollingError);

callAsynchMethod('ClientStatusHandler.asmx/StartRetrievingLeads',
data, stopPolling, stopPollingError);

Site.js

function callAsynchMethod(url, keyValue, callBack, callBackError) {
    $.ajax({
        type: "POST",
        url: url,
        data: keyValue,
        contentType: "application/json; charset=utf-8",
        success: callBack,
        error:callBackError
    });
}

ClientStatusHandler.asmx.cs

const string key = "LUMessages";
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        [WebMethod(EnableSession = true)]
        public string[] GetMessages()
        {

            if (Session[key] != null)
            {
                string[] messages = ((IList<string>)Session[key]).ToArray();
                ((IList<string>)Session[key]).Clear();
                return messages;
            }
            return new string[] { };
        }







  [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
     [WebMethod(EnableSession = true)]
      public string[] UploadUsers()
     {
    //This function adds a user and calls SaveMessageToQueue 
//for every user.
    //I see the message being entered into the session and 
//I call Thread.Sleep(10000) 
    //between messages.
    }









     private void SaveMessageToQueue(string m)
        {

        IList<string> messageQueue = (List<string>)HttpContext.Current.
Session["LUMessages"];
        messageQueue.Add(m);
         }

Ответы на вопрос(1)

Ваш ответ на вопрос