【发布时间】:2016-08-30 21:47:38
【问题描述】:
在处理 PUT 调用时,WebAPI 处理程序在验证模型时似乎会进入堆栈溢出类型的情况。异常尚不清楚,也没有迹象表明模型中的什么导致此验证类进入循环。附加调试器没有任何作用。处理程序永远不会被调用,序列化程序将正常反序列化发布的 json 而不会发生意外。 可能出了什么问题?
下面的代码只是循环了几百次才退出抛出异常"
堆栈不足,无法继续安全地执行程序。这个可以 发生在调用堆栈或函数上的函数过多 堆栈使用了太多堆栈空间。
at System.Runtime.CompilerServices.RuntimeHelpers.EnsureSufficientExecutionStack()
at System.Web.Http.Validation.DefaultBodyModelValidator.ValidateNodeAndChildren(ModelMetadata metadata, ValidationContext validationContext, Object container, IEnumerable`1 validators)
at System.Web.Http.Validation.DefaultBodyModelValidator.ValidateProperties(ModelMetadata metadata, ValidationContext validationContext)
模型类似于这个简单的示例。该模型具有默认值,我可以确认它们都已初始化。该模型也没有对自身的引用。
public class Example {
[Required]
public string test {get; set;}
[Required]
public CustomEnumType myEnum {get; set;}
}
【问题讨论】:
标签: c# asp.net-web-api