最近我遇到了錯誤「集合在枚舉器實例化後被修改」,我不知道爲什麼。該錯誤指定了web.config。什麼導致這個錯誤?什麼導致錯誤「集合在枚舉器實例化後被修改」?
我一直無法重現它。該錯誤很少隨機彈出。我的程序需要一個文件並對其進行處理。當我收到這個錯誤時,我只是重新運行程序,它很好。
我在想我的程序運行時正在修改我的web.config文件嗎?我的程序連接到多個數據庫(sql,db2和oracle),所以有時可能需要幾秒鐘才能完成。在那段時間內是否可能觸及web.config是原因還是我看錯了地方?
編輯:
下面是有關該錯誤的一些附加信息:
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讀取連接字符串和59行包含正在讀取的連接字符串信息。
這是否仍然看起來像是因爲修改了循環中的集合?
我會將項目添加到集合中,但不是在循環中,也不在附近顯示堆棧軌跡的地方。我不會刪除收藏中的任何物品。
這通常意味着你建立一個集合的迭代器,但你從內修改集合:此錯誤通常無論是從(前面提到)修改這樣的itterator內收集引起迭代器,從而使其失效。我之前沒有在我的web.config文件中遇到過這樣的事情。 – 2009-08-03 19:36:42