現在、適切な順序でクリックすると情報がセッションに格納される一連のWebフォームが作成されています。ユーザーがこのページに直接アクセスした場合、最初のWebフォームページにリダイレクトします。私はこれを得ることができます.NETサーバーにロードされたときにWebフォーム内のセッションに含まれるものをデバッグします
私のマシン上でローカルにこのコードを実行すると、セッションはnullで、if/else文が動作し、default.aspxにリダイレクトされます。しかし、ファイルをサーバーにロードしてWebページから実行すると、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");
}
}
:私はいくつかのグーグルを行ってきたとの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)
ヌル例外は、問題のページからのものであり、リダイレクトされたページからのものではありませんか?それはヌルである 'll'ですか? – user1429080
@ user1429080私はフロントエンドページ内のラベルですが、確かに私はそれを打つべきではありませんか?セッションはnullになるはずなので、自動的にリダイレクトする必要がありますか?または私は誤解したことがあります! :) – hlh3406
スタックトレースを投稿できますか – Saravanan