Podczas obsługi wywołania PUT, procedura obsługi WebAPI wydaje się przechodzić w sytuację typu przepełnienia stosu podczas sprawdzania poprawności modelu. Wyjątek nie jest jasny i nie ma wskazania, co w modelu powoduje, że ta klasa walidacji przechodzi w pętlę. Dołączanie debuggera nic nie robi. Handler nigdy nie zostanie wywołany, serializer będzie deserializował wysłany json normalnie bez incydentów. Co może być nie tak?WebAPI PUT niewystarczający wyjątek wyjątku Exception z DbGeography Type
Poniższy kod tylko pętle kilkaset razy przed wyjściem rzuca wyjątek”
Niewystarczająca stosu, aby kontynuować wykonywanie programu bezpiecznie. Można zdarzyć ze zbyt wielu funkcji na stosie wywołań lub działać na stos używając zbyt wiele miejsca stosu.
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)
model jest podobny do tego prostego przykładu. Model posiada domyślną val Wszystkie, które mogę potwierdzić, zostały zainicjowane. Model również nie ma żadnych odniesień do samego siebie.
public class Example {
[Required]
public string test {get; set;}
[Required]
public CustomEnumType myEnum {get; set;}
}
Wow. Gdybym tego nie znalazł, straciłbym wiele dni. Dzięki za uratowanie mnie. –