静态Dictionary<string,object>类型的的变量使用时抛出了两个异常
1.在调用ContainsKey()方法时抛出异常:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
at System.Collections.Generic.Dictionary`2.ContainsKey(TKey key)
2.在赋值的时候,比如dict["key"]=value时抛出异常:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
回收一下iis应用程序池就好了,但是不知道怎么引起的,所以不能保证什么时候再出现,以前系统跑了一年没出过这个问题
系统是WebApplication
是不是改成用ConcurrentDictionary就不会出这个问题了
看起来很像,多线程对dictionary一边读一边写是很可能出现这种情况的, 不过这种问题应该不是必现的,不大好确定。
另外, 如果你用的是Dictionary而且又有多线程访问的话,还是尽早改成ConcurrentDictionary吧,用Dictionary迟早出问题。