проблема с одноэлементным методом при вызове WCF с использованием JQuery - PullRequest
0 голосов
/ 21 декабря 2010

Я создал простой простой метод, который просто увеличивает число на 1 и возвращает значение.

    [ServiceContract]
public interface ICalc
{
    [OperationContract]
    [WebGet(UriTemplate = "getnumber")]
    int GetNextNumber();

класс обслуживания:

 [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class Calculator : ICalc
{
    int i = 1;

    public int GetNextNumber()
    {return i++; }
}

Служба размещается с использованием WebHttpBinding ихорошо работает при открытии из браузера.Например, когда я просматриваю http://localhost:8083/Calc/getnumber, я получаю

  <int xmlns="http://schemas.microsoft.com/2003/10/Serialization/">1</int> 

Каждый раз, когда я обновляю, значение постоянно увеличивается на 1 в xml-ответе (как и ожидалось из-за поведения синглтона)

ПРОБЛЕМА

Когда я вызываю ту же службу, используя JQuery, как:

$.ajax(
            {
                type: "GET", 
                url: "http://localhost:8083/Calc/getnumber",
                data: "",
                contentType: "application/html",
                processData: true,
                success: function (msg) { alertResult(alert(msg.childNodes[0].xml)) }
            }

        );

Я продолжаю получать один и тот же (последний) номер, и отладчик тоже не вызывается при обслуживании,

Что я не понимаю, так это: если метод не вызывается с использованием JQuery, как я получаю корректный вывод и если вызывается метод, то почему не происходит приращение (что работает правильно, если я вызываю службу простонажми URL сервиса прямо из просмотра) r ???

спасибо!

1 Ответ

0 голосов
/ 21 декабря 2010

Попробуйте добавить cache: false в свойствах запроса ajax, чтобы браузер действительно запрашивал URL-адрес каждый раз, так как в противном случае каждый здравомыслящий браузер будет кэшировать ответ на ваш запрос GET, поскольку ваш URL-адрес не изменяется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...