セッション配列を使用して Web パーツの状態変数を保存してきました...そのため、次のようなプロパティがあります。
public INode RootNode
{
get
{
return this.Context.Session["RootNode"] as INode;
}
set
{
this.Context.Session["RootNode"] = value as object;
}
}
これは通常うまくいきます。context.session 変数が null になる場合があることを発見しました。
そもそもセッションが null になる条件と、これが発生したときにオブジェクトを永続化する最良の方法を知りたいですか? 新しい HttpSessionState オブジェクトをコンテキストに割り当てることはできますか?
編集:わかりました、それで、null のセッションだけではありません... コンテキスト全体がめちゃくちゃです。Web パーツが init に入ると、コンテキストは問題ありません... しかし、ドロップボックスの selectedindexchange ポストバック イベント (ドロップボックスには、rootnode 変数を設定するために使用するノード ID が含まれています) に達すると、コンテキストにはほとんど null プロパティが含まれます。
また、特定の ID が選択されている場合にのみ発生するようです。これは、セッションの理解に問題があるというよりも、私の側のある種の奇妙なバグのように見えます。