В настоящее время я работаю над серией веб-форм, которые при нажатии в правильном порядке информация хранится в сеансе. Если пользователь переходит на эту страницу напрямую, я хочу перенаправить их обратно на первую страницу веб-формы. Я могу получить это.NET отлаживает то, что находится в сеансе в веб-форме при загрузке на сервер
Когда я запускаю этот код локально на своей машине, Session имеет значение null и оператор if/else работает, перенаправляя default_aspx. Однако, когда я загружаю файлы на сервер и запускаю с веб-страницы, я получаю ошибку Object reference not set to an instance of an object.
.
protected void Page_Load(object sender, EventArgs e)
{
if (Session != null && Session["ReasonForAdminRights"] != null)
{
ll.Text = Session["ReasonForAdminRights"].ToString();
}
else
{
Response.Redirect("~/default.aspx");
}
}
Я пытался несколько вариаций без удачи, в том числе:
if (!string.IsNullOrEmpty(Session["ReasonForAdminRights"] as string))
{
ll.Text = ((string)Session["ReasonForAdminRights"]);
}
И
if (Session["ReasonForAdminRights"] != null)
я сделал некоторые Googling и ответы на Stackoverflow сказали мне что объект сеанса установлен неправильно. Но я застрял в том, как отлаживать его дальше на сервере? Я не знаю, как узнать, что на самом деле там, так как оно должно быть нулевым, поэтому всегда следует обращаться к инструкции else.
Любая помощь будет оценена! Я немного потерял!
Ответы пытались:
What does "Object reference not set to an instance of an object" mean?
What is a NullReferenceException, and how do I fix it?
Object reference not set to an instance of an object.
EDIT трассировки стека:
[NullReferenceException: Object reference not set to an instance of an object.]
ServiceDeskHelpForms.user_details_collection.Page_Load(Object sender, EventArgs e) in \\homes\My Documents\Visual Studio 2015\Projects\SDHelpForms\SDHelpForms\user-details-collection.aspx.cs:24
System.Web.UI.Control.OnLoad(EventArgs e) +108
System.Web.UI.Control.LoadRecursive() +67
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
+4497
Вы уверены, что исключительное исключение исходит от указанной страницы, а не со страницы, на которой вы перенаправлены? Может ли оно быть 'll', которое равно null? – user1429080
@ user1429080 ll - это ярлык на моей первой странице - но я не должен был ударить его? Сессия должна быть нулевой, поэтому я должен автоматически перенаправить? Или я неправильно понял! :) – hlh3406
Можете ли вы опубликовать трассировку стека – Saravanan