2017-01-25 5 views
0

現在、適切な順序でクリックすると情報がセッションに格納される一連のWebフォームが作成されています。ユーザーがこのページに直接アクセスした場合、最初のWebフォームページにリダイレクトします。私はこれを得ることができます.NETサーバーにロードされたときにWebフォーム内のセッションに含まれるものをデバッグします

私のマシン上でローカルにこのコードを実行すると、セッションはnullで、if/else文が動作し、default.aspxにリダイレクトされます。しかし、ファイルをサーバーにロードしてWebページから実行すると、Object reference not set to an instance of an object.エラーが発生します。

Iを含む、任意の運なしで多くのバリエーションを試してみた
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Session != null && Session["ReasonForAdminRights"] != null) 
    { 
     ll.Text = Session["ReasonForAdminRights"].ToString(); 
    } 
    else 
    { 
     Response.Redirect("~/default.aspx"); 
    } 
} 

:私はいくつかのグーグルを行ってきたとのStackOverflow上の答えは私に言ってきた

if (!string.IsNullOrEmpty(Session["ReasonForAdminRights"] as string)) 
{ 
    ll.Text = ((string)Session["ReasonForAdminRights"]); 
} 

そして

if (Session["ReasonForAdminRights"] != null) 

セッションオブジェクトが正しく設定されていないことを確認します。しかし、私はサーバー上でそれをさらにデバッグする方法について悩んでいますか?実際にそこにあるものを見つける方法はわかりません。nullにする必要があるので、常に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) 
+0

ヌル例外は、問題のページからのものであり、リダイレクトされたページからのものではありませんか?それはヌルである 'll'ですか? – user1429080

+0

@ user1429080私はフロントエンドページ内のラベルですが、確かに私はそれを打つべきではありませんか?セッションはnullになるはずなので、自動的にリダイレクトする必要がありますか?または私は誤解したことがあります! :) – hlh3406

+0

スタックトレースを投稿できますか – Saravanan

答えて

2

:質問

問題にcommment軌跡に基づいて回答はおそらく、サーバー上の壊れたインストールによって引き起こされます。サーバー上の完全なワイプ+再デプロイによって問題が解決される可能性があります。

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

これを試してみましたが、 'll.Text =((String)Session [" ReasonForAdminRights "]);' Sessionがnullでなければならないので、if文に入るべきではありません。 – hlh3406

関連する問題