Ho un metodo POST controller Web API che si comporta bene localmente e sul server di test. Se tutto va bene ritorna:I messaggi di errore restituiti dal metodo API Web vengono omessi in ambiente non dev.
new HttpResponseMessage(HttpStatusCode.Created)
Se qualcosa va storto, restituisce:
new HttpResponseMessage<IEnumerable<string>>(usefulMessages, HttpStatusCode.BadRequest);
Il problema è che quando faccio una richiesta al server di prova che si traduce in un errore, ottengo il codice di richiesta errato indietro ma non vedo mai i messaggi. Se faccio la stessa identica richiesta al mio computer locale, vedo i messaggi. I seguenti uscite sono dal mio strumento:
Invio di una richiesta alla mia macchina locale ottengo:
Status code: 400 (BadRequest)
Response data: ["Error message one", "Error message two"]
Invio di una richiesta al server di prova ottengo:
Status code: 400 (BadRequest)
Response data: Bad Request
Il codice che è in esecuzione è esattamente lo stesso. Il database è lo stesso. Tutto è uguale ad eccezione del server che gestisce la richiesta. Ho persino il codice per mandarmi via email i messaggi di errore, quindi so che il server sta producendo i messaggi di errore corretti e si comporta correttamente. Potrebbe essere una cosa IIS (come l'equivalente di customErrors = RemoteOnly per Web API)? Non solo i messaggi di errore vengono omessi dai dati di risposta, qualcosa inventa invece la frase "Richiesta errata".
Qualche idea? Grazie.
Questo non sembra funzionare. Se così fosse, genererebbe una nuova domanda: "Perché devo consentire agli utenti delle mie pagine Web di visualizzare le pagine di errore del server giallo con tracce di stack per fornire risposte al servizio Web informativo?". –