2009-03-24 10 views
1

をforeachループを実行するときにコントロールが、それは私がnull参照インタフェースASP.Netクラスタ環境で

foreach (IField field in this._fields) 
{ 
    /* Do some work here */ 
} 

のLocalhostなどのフィールドのリストをforeachループを実行し、子コントロールだ作成するときに私は、Webコントロールのリストを持っています、out dev環境、私たちのステージング環境はすべて問題ありません。しかし、私たちがdevクラスタにデプロイするとき、各 "field"はループ中にnullです。これらのオブジェクトをnullにする原因は何ですか?別のリストのデータからこのリストをロードすると、すべてが正常にロードされ、そのデータはnullではありません。

+1

まあ、this._fieldsが何であるかはわかりません。どうやらそれはヌル参照の束に初期化されていますが、それよりも多くの情報が必要です - コードが初期化するものと同じです。 –

答えて

2

IFieldの内容を保存するためにアプリケーションレベルのキャッシュを使用していないことを確認してください.IFieldはクラスタ内のサーバ間で複製されていないためです。

セッションキャッシュを使用している場合は、クラスタで実行中にSQL Serverに永続化されていることを再度確認してください。インプロセスセッションキャッシュの場合は、クラスタ内の各サーバーに固有です(アプリケーションキャッシュと同様)。

0

最初の確認:どのようにフィールドコレクションを取得していますか?途中でIFieldとして何かしていますか?それはIFieldを実装していない場合、事実上nullを与えます。

上記以外の場合は、本当に奇妙なシナリオになります。そうするにはポイントがありませんが、それは実際にasp.netとのトラブルの原因となる

void Clear() 
{ 
    //some normal code to clear info on some controls 
    myTextBox = null; 
    anotherTextBox = null; 
} 

:頭に浮かぶ唯一のことは、私は別のプロバイダによって開発されたアプリでは、いくつかの明確なコードで見た、本当にひどいものでした。特定のポストバックシナリオでは、asp.netは、ライフサイクルの内部の一部の一部で、null参照例外で失敗しました。

したがって、ページに宣言されたコントロールにnullを割り当てる奇妙なルーチンがあるかどうかも確認してください。

関連する問題