Лучшая практика при использовании WebMethods и сессии - PullRequest
5 голосов
/ 15 мая 2010

Я хочу уменьшить обратную передачу на одной из страниц приложения и использовать вместо этого ajax. Я использовал WebMethod для этого ... У меня есть статический WebMethod, который должен получить доступ к переменным сеанса и изменить их. и на стороне клиента я вызываю этот метод с помощью jQuery. Я попытался получить доступ к сессии следующим образом:

[WebMethod]
    public static void TestWebMethod()
    {
        if (HttpContext.Current.Session["pitems"] != null)
        {
            log.Debug("Using the existing list");
            Product prod = (Product)HttpContext.Current.Session["pitems"];
            List<Configs> confs = cart.GetConfigs();
            foreach (Configs citem in confis)
            {
                log.Info(citem.Description);
            }


        }
        log.Info("Inside the method!");
    } 

Значения отображаются правильно и, кажется, работают ... но я хотел бы знать, разрешена ли эта практика, поскольку метод является статическим методом, и хотел бы знать, как он будет себя вести, если к приложению обращаются несколько человек. *

Я также хотел бы знать, как разработчики выполняют такие задачи в ASP, если это неправильный метод.

Заранее спасибо за ваши предложения и идеи,
Абдель Олакара

1 Ответ

4 голосов
/ 15 мая 2010

Статические методы абсолютно безопасны в использовании. Проблема, с которой некоторые люди сталкиваются с полями, разделяемыми между запросами, возникает только со статическими полями , потому что они действительно совместно используются в одном процессе.

Я думаю, ваш метод - хороший способ справиться с этим. Это именно то, для чего нужны веб-методы.

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