Потеря сеанса и приложения закончилась случайно?

У меня есть сеансы записи информации о входе пользователя в систему, но она теряется из-за завершения моего приложения.

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

Я решил записать файл Golbal.asax и записать, когда сеанс запускается и заканчивается, а также когда мое приложение запускается и заканчивается, и если есть какие-либо ошибки приложения.

Когда пользователь перемещается по веб-сайту, сеанс проверяется, если он нулевой, если сеанс не нулевой, я регистрирую скрытые поля для этой страницы, чтобы использовать мои значения сеанса, но если сеансы нулевые, я оставляю их и перенаправляю на страницу входа.

Вот что мой журнал показал мне:

[11:52:25]   Application has started 
[11:52:25]   Session has started 
[11:52:35]   Use session 
[11:52:45]   Use session 
[11:52:54]   Use session 
[11:52:59]   Use session 
[11:53:5 ]   Use session 
[11:53:10]   Use session 
[11:53:15]   Use session 
[11:53:18]   Session has ended 
[11:53:18]   Application has ended 
[11:53:22]   Application has started 
[11:53:23]   Session has started 
[11:53:23]   Abandon Session 
[11:53:23]   Session has ended 
[11:53:23]   Session has started

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

Когда нажата навигационная ссылка, это код для проверки сеанса.

    protected override void OnInit(EventArgs e)
    {
        LogClass Log = new LogClass();

        if (this.Session != null && this.Session.Count > 0)
        {
            Log.Logger("Use session");

            string email = (string)this.Session["Email"];
            int practiceId = (int)this.Session["PracticeId"];
            int practitionerId = (int)this.Session["PractitionerId"];

            this.ClientScript.RegisterHiddenField("loggedInUserName", email);
            this.ClientScript.RegisterHiddenField("practiceId", practiceId.ToString());
            this.ClientScript.RegisterHiddenField("practitionerId", practitionerId.ToString());
        }
        else
        {
            Log.Logger("Abandon Session");
            this.Session.Abandon();
            Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
            Response.Redirect("~/Default.aspx");  
        }

        base.OnInit(e);
    }

Что может быть причиной того, что мой сеанс теряется так быстро, и почему проблема заключается только в том, что размещается в прямом эфире, а не в локальном хосте?

Что приводит к завершению приложения, так как у меня нет зарегистрированных ошибок приложения?

0 ответов

Другие вопросы по тегам