Состояние сеанса не сохраняется при вызовах метода страницы - PullRequest
1 голос
/ 31 июля 2009

Код моего сервера:

    [WebMethod(CacheDuration = 0, EnableSession = true)]
    public static int UserID()
    {
        if (HttpContext.Current.Session["UserID"] == null) return 0;
        int UserID = Convert.ToInt32(HttpContext.Current.Session["UserID"]);
        return (UserID);

    }

Код моего клиента:

$.ajax({
    type: "POST", cache: false,
    url: "Login.aspx/UserID",
    data: "{'r':" + rnd() + "}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
        alert(msg);
    }
});

Этот код хорошо работает на моем локальном хосте. и ajax-вызов «UserID» возвращает правильное значение параметра Session.

но когда я пытаюсь загрузить свой веб-сайт на сервер, ajax-вызов UserID всегда возвращает false !!

мой сервер asp.net 2.0, и я использую jquery 1.3.2

Поэтому, пожалуйста, помогите решить эту проблему.

Ответы [ 2 ]

1 голос
/ 02 августа 2009

Прочтите эту статью: FAQ по состоянию сеанса ASP.NET Я нашел ответ на эти вопросы:

  1. В: Сеансовые состояния работают на некоторых веб-серверах, но не на других. A: Возможно, проблема с именем машины. См http://support.microsoft.com/default.aspx?scid=kb;EN-US;q316112.
  2. В: Почему мои переменные Session часто теряются при использовании режима InProc? A: Вероятно, из-за перезапуска приложения. См http://support.microsoft.com/default.aspx?scid=kb;en-us;Q316148

Изменение режима sessionState на StateServer решило проблему. Используйте код ниже:

<sessionState mode="StateServer"
  stateConnectionString="tcpip=localhost:42424"
  cookieless="false"
  timeout="999"/>
0 голосов
/ 31 июля 2009

Несколько вещей для проверки:

Используете ли вы конфигурацию WebFarm? при использовании сеанса в конфигурации WebFarm может возникнуть проблема.

Проверяли ли вы сетевой трафик с помощью таких инструментов, как Fiddler или FireBug? Отправляется ли файл cookie ASP.NET Auth во время вызова AJAX?

Можете ли вы подтвердить, что ваш сеанс var действителен?

...