dtc*_*dtc 2 .net asp.net web-config
最近我遇到了错误"集合在枚举器实例化后被修改",我不明白为什么.该错误指定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
Run Code Online (Sandbox Code Playgroud)
查看堆栈跟踪时,我尝试从web.config读取连接字符串,第59行包含正在读取的连接字符串信息.
这仍然看起来像是由于在循环中修改集合吗?
我确实将项目添加到集合中,但不是在循环中,而是在堆栈跟踪显示的位置附近.我不会从集合中删除任何项目.
Ode*_*ded 10
迭代时(或者在foreach中),您无法更改集合.
因此,在foreach块中添加或删除集合中的项将导致此错误.
作为web.config中的错误,可能是您要添加在别处定义的重复键,或者您尝试在代码中动态更改配置.