Потеря сеанса и приложения закончилась случайно?
У меня есть сеансы записи информации о входе пользователя в систему, но она теряется из-за завершения моего приложения.
Запустив код с локального хоста, у меня нет проблем, но теперь, когда я запустил сайт вживую, я очень быстро теряю сессию за считанные минуты.
Я решил записать файл 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);
}
Что может быть причиной того, что мой сеанс теряется так быстро, и почему проблема заключается только в том, что размещается в прямом эфире, а не в локальном хосте?
Что приводит к завершению приложения, так как у меня нет зарегистрированных ошибок приложения?