Quando si gestisce una chiamata PUT, un gestore WebAPI sembra andare in una situazione di tipo di overflow dello stack durante la convalida del modello. L'eccezione non è chiara e non vi è alcuna indicazione su cosa nel modello stia causando questa classe di validazione in un ciclo. L'associazione del debugger non fa nulla. Il gestore non verrà mai chiamato, il serializzatore deserializzerà il jSON inviato normalmente senza incidenti. Cosa potrebbe esserci di sbagliato?WebAPI PUT InsufficientExecutionStackException con DbGeography Tipo
Il codice seguente viene ripetuto solo diverse centinaia di volte prima di uscire lanciare l'eccezione"
pila insufficiente per continuare l'esecuzione del programma di sicurezza. Questo può succedere di avere troppe funzioni nello stack di chiamata o funzionare su lo stack di usare troppo spazio di stack.
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)
il modello è simile a questo semplice esempio. il modello ha di default val quelli che posso confermare sono tutti inizializzati. Anche il modello non ha riferimenti a se stesso.
public class Example {
[Required]
public string test {get; set;}
[Required]
public CustomEnumType myEnum {get; set;}
}
Wow. Se non avessi trovato questo avrei perso giorni. Grazie per avermi salvato. –