Состояние сеанса не сохраняется при вызовах метода страницы

StackOverflow https://stackoverflow.com/questions/1210155

Вопрос

Мой код на стороне сервера:

    [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, верните правильное значение параметра Session.

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

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

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

Это было полезно?

Решение

Прочтите эту статью: Часто задаваемые вопросы о состоянии сеанса ASP.NET Я нашел свой ответ в этих вопросах:

<Ол>
  • В: Сеансовые состояния работают на некоторых веб-серверах, но не на других. A: Возможно, проблема с именем машины. См. http://support.microsoft.com/default.aspx. ? scid = kb; EN-US; q316112 .
  • В: Почему мои переменные 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"/>
    

    Другие советы

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

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

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

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top