最近、 "列挙子がインスタンス化された後にコレクションが変更されました"というエラーが発生しました。理由はわかりません。エラーはweb.configを指定します。このエラーの原因は何ですか?「列挙子がインスタンス化された後にコレクションが変更されました」というエラーが発生する原因は何ですか?
私はそれを再現できませんでした。このエラーは非常にまれであり、ランダムではありません。私のプログラムはファイルを取り込み、それを処理します。このエラーが表示されたら、単にプログラムを再実行しても問題ありません。
プログラムの実行中にweb.configを変更していると思っていますか?私のプログラムはいくつかのデータベース(sql、db2、oracle)に接続するので、完了するまでに数秒かかることがあります。その時にweb.configに触れる何かが原因でしょうか、間違った領域を見ていますか?
編集:私はweb.configファイルから接続文字列を読み取ろうとしましたし、ライン59が含まれている場合、それは起こったスタックトレースを見てみると
Type : System.Configuration.ConfigurationErrorsException, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Message : An error occurred loading a configuration file: Collection was modified after the enumerator was instantiated. (<path>\web.config line 59)
Source : System.Configuration
Help link :
BareMessage : An error occurred loading a configuration file: Collection was modified after the enumerator was instantiated.
Filename : <path>\web.config
Line : 59
Errors : System.Configuration.ConfigurationException[]
Data : System.Collections.ListDictionaryInternal
:ここ
は、エラーに関する追加情報があります読み取られている接続文字列情報。これは、ループ内のコレクションを変更するためのものですか?
私はコレクションにアイテムを追加しますが、ループではなく、スタックトレースが表示されている場所の近くには追加しません。コレクションからアイテムを削除しません。
これは通常、あなたがコレクションでイテレータを設定することを意味するが、その後、内からコレクションを変更しますイテレータを無効にします。以前はweb.configファイルにこのようなことがあったわけではありません。 –