2017-01-25 10 views
0

В настоящее время я работаю над серией веб-форм, которые при нажатии в правильном порядке информация хранится в сеансе. Если пользователь переходит на эту страницу напрямую, я хочу перенаправить их обратно на первую страницу веб-формы. Я могу получить это.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

+0

Вы уверены, что исключительное исключение исходит от указанной страницы, а не со страницы, на которой вы перенаправлены? Может ли оно быть 'll', которое равно null? – user1429080

+0

@ user1429080 ll - это ярлык на моей первой странице - но я не должен был ударить его? Сессия должна быть нулевой, поэтому я должен автоматически перенаправить? Или я неправильно понял! :) – hlh3406

+0

Можете ли вы опубликовать трассировку стека – Saravanan

ответ

2

Примечание: Ответ основан на commment след на вопрос

Проблема, скорее всего, вызвано сломанной установки на сервере. Полная очистка + повторное развертывание на сервере может решить проблему.

0
var sessionValue= (string)(Session["ReasonForAdminRights"]); 
if(!string.IsNullOrEmpty(sessionValue)) 
{ 
//do something... 
} 
+0

Пробовал это, но все еще ошибки на этой строке: 'll.Text = ((string) Session [" ReasonForAdminRights "]);' Даже если он не должен попадать в оператор if, поскольку Session должен быть нулевым. – hlh3406

 Смежные вопросы

  • Нет связанных вопросов^_^