0

私は先週次のコードを使用していましたが、問題なく動作しましたが、今朝は何らかの理由でスローされました。

System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

私のコード:

DataSet icanData = (DataSet)HttpContext.Current.Session["icanDataSession"];
if (!(icanData == null))
{
     return icanData;
}

私が使用してHttpContext.Current.Sessionいる理由は、クラスで実行されているためです。

4

4 に答える 4

1

Session["icanDataSession"];紛失したようです。

コードのどこで設定されますか? もともと IIS に保存されていたセッションが、アプリケーション プールのリサイクルによって失われた可能性があります。

于 2012-10-12T10:46:30.787 に答える
0

セッション オブジェクトをデータセットにキャストする前に、セッションが null であることを確認する

if(HttpContext.Current.Session["icanDataSession"]=!null)
{
  DataSet icanData = (DataSet)HttpContext.Current.Session["icanDataSession"];
  if (!(icanData == null))
   {
     return icanData;
   }
}
else 
{
return new Dataset();
}
于 2012-10-12T10:49:38.620 に答える
0

このコードが aspx.cs によって呼び出されている場合、問題なく動作すると思います。ただし、これがステートレス サービスによって呼び出されると、報告したようにエラーがスローされます。最初に if(HttpContext.Current != null) を確認することをお勧めします..

于 2012-10-12T10:49:57.843 に答える
0

public static DataSet IcanData()ASPXファイルの先頭で呼び出していると述べました。代わりに、Page_Loadイベントからそのメソッドを呼び出します。セッションにアクセスしている時点では、使用できません。

セッションが null になる理由に関する情報は、次の質問に記載されています:現在の ASP.NET セッションが null の場合はどうすればよいですか?

于 2012-10-12T12:24:59.660 に答える