ryu*_*ice 3 .net c# asp.net-mvc-3
我们最近得到了这个错误并且不知道为什么,我们没有修改任何集合,我们甚至删除了我们收到错误的页面上的大多数foreach.这是错误的堆栈跟踪:
Exception type: InvalidOperationException
Exception message: Collection was modified; enumeration operation may not execute.
en System.Collections.Generic.List`1.Enumerator.MoveNextRare()
en System.Linq.Enumerable.WhereListIterator`1.MoveNext()
en System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext()
en System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
en System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext()
en System.Linq.Buffer`1..ctor(IEnumerable`1 source)
en System.Linq.OrderedEnumerable`1.<GetEnumerator>d__0.MoveNext()
en System.Linq.Buffer`1..ctor(IEnumerable`1 source)
en System.Linq.Enumerable.<ReverseIterator>d__a0`1.MoveNext()
en System.Web.Mvc.FilterProviderCollection.<RemoveDuplicates>d__b.MoveNext()
en System.Linq.Buffer`1..ctor(IEnumerable`1 source)
en System.Linq.Enumerable.<ReverseIterator>d__a0`1.MoveNext()
en System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
en System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
en System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
en System.Web.Mvc.FilterInfo..ctor(IEnumerable`1 filters)
en System.Web.Mvc.ControllerActionInvoker.GetFilters(ControllerContext controllerContext, ActionDescriptor actionDescriptor)
en System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
en System.Web.Mvc.Controller.ExecuteCore()
en System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
en System.Web.Mvc.MvcHandler.<>c__DisplayClass6.<>c__DisplayClassb.<BeginProcessRequest>b__5()
en System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0()
en System.Web.Mvc.MvcHandler.<>c__DisplayClasse.<EndProcessRequest>b__d()
en System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
en System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.
我也一直在看这个问题,所以我做了一些挖掘.很明显,这基于堆栈跟踪在MVC内部发生,但看起来MVC 5应该解决这个问题.左边的版本是MVC4,右边的版本是发布此版本时MVC5的当前版本.如果您查看该RemoveDuplicates()方法,它看起来像是被修改以防止我们看到的异常.