System.InvalidOperationException:集合已被修改;枚举操作可能无法执行(仅在生产中)

时间:2013-11-19 10:48:04

标签: c# asp.net enumeration

我在生产中遇到以下错误(仅限),我无法弄清楚原因,如果有人可以帮我解决这个问题会很棒。

  

Exception HttpUnhandledException:ErrorCode:-2147467259消息:   抛出了类型'System.Web.HttpUnhandledException'的异常。   数据:System.Collections.ListDictionaryInternal InnerException:   System.InvalidOperationException:集合已被修改;列举   操作可能无法执行。在   MyToolbarEx.RaiseEvent(字符串   eventArgument,Boolean isCallBack)in   C:\ BA \ 2 \ 547 \源头\ MyToolbarEx.cs:线   281在System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler   sourceControl,String eventArgument)

这是我的代码(在myclass.cs中)

    private void RaiseEvent(string eventArgument, bool isCallBack)
    {
        LoadCommandState(); //this is the line '281' which casues the issue
        //rest of the code
    }

这是方法'LoadCommandState'

    private void LoadCommandState()
    {
        lock (Commands) //Marks this block as a critical section
        {
            //Commands is a custom collection & ToArray() call is to create a copy of it to avoid the above said issue, but nothing worked
            foreach (ToolbarExCommand command in Commands.ToArray()) 
            {
                if (command.HasState && toolbarState.ContainsKey(command.StateKey))
                {
                    LoadCommandState(command, toolbarState[command.StateKey]);
                }
            }
        }
    }

如果您需要任何其他详细信息,请与我们联系。

0 个答案:

没有答案