1

我们使用 ASP.NET webapi2 并在我们的模型中实现了许多 jsonconverters。

我们很少遇到例外情况,大约每月一次。我们不在我们的模型上使用任何验证属性。在多次查看代码后不确定是什么原因造成的。

以前有没有人遇到过类似的异常,有什么线索。

收藏已修改;枚举操作可能无法执行。

在 System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource 资源) 在 System.Collections.Generic.Dictionary 2.Enumerator.MoveNext() at System.Web.Http.Validation.DefaultBodyModelValidator.ValidateElements(IEnumerable model, ValidationContext validationContext) at System.Web.Http.Validation.DefaultBodyModelValidator.ValidateNodeAndChildren(ModelMetadata metadata, ValidationContext validationContext, Object container, IEnumerable1 验证器) 在 System.Web.Http.Validation.DefaultBodyModelValidator.ValidateProperties(ModelMetadata 元数据,ValidationContext validationContext) 在 System.Web.Http.Validation.DefaultBodyModelValidator .ValidateNodeAndChildren(ModelMetadata 元数据,ValidationContext 验证上下文,对象容器,IEnumerable1 validators) at System.Web.Http.Validation.DefaultBodyModelValidator.ValidateProperties(ModelMetadata metadata, ValidationContext validationContext) at System.Web.Http.Validation.DefaultBodyModelValidator.ValidateNodeAndChildren(ModelMetadata metadata, ValidationContext validationContext, Object container, IEnumerable1 个验证器)在 System.Web.Http.ModelBinding.FormatterParameterBinding.d__0.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪---在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)在 System.Web.Http.Controllers.HttpActionBinding.d__0.MoveNext() 处的 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- 堆栈跟踪从先前抛出异常的位置结束 --- 在 System. Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() --- 上一个堆栈跟踪结束引发异常的位置 --- 在 System.Runtime。CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在 System.Web.Http.Controllers.ExceptionFilterResult.d__0.MoveNext()

4

2 回答 2

0

是的,这个错误通常意味着说你有一个相当于以下内容的列表:

A
B
C

某些东西以一种导致列表被修改的方式插入到列表中,如下所示:

A
B
D
C

例如。枚举抛出异常,因为它识别出列表已被修改;这通常发生在 foreach 循环中。有关更多信息,请参阅此帖子:收藏已修改;以 ArrayList为例,枚举操作可能无法执行。使用 for 是一种绕过它的方法。

您是否自定义了模型绑定策略的任何部分?

于 2017-05-15T12:12:16.113 回答
0

我禁用了模型绑定模块。因为我们不需要它。避免出现这种异常。

于 2018-02-19T10:07:56.320 回答