首页 新闻 搜索 专区 学院

急急急,服务器挂了

0
悬赏园豆:40 [已关闭问题] 关闭于 2015-01-25 23:16

静态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就不会出这个问题了

拖鞋王子的主页 拖鞋王子 | 初学一级 | 园豆:47
提问于:2015-01-18 05:23
< >
分享
所有回答(1)
0

看起来很像,多线程对dictionary一边读一边写是很可能出现这种情况的, 不过这种问题应该不是必现的,不大好确定。  

另外, 如果你用的是Dictionary而且又有多线程访问的话,还是尽早改成ConcurrentDictionary吧,用Dictionary迟早出问题。

天方 | 园豆:5375 (大侠五级) | 2015-01-18 20:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册