Il soggetto è autoesplicativo. Ho sviluppatori e ambienti di produzione. Sviluppatore env. è la mia macchina localhost. Dispongo di metodi di azione nei controller che impostano il codice di stato della risposta su 500 quando qualcosa non va (errore o inconsistenza logica) e restituisce Json-answer. Il mio metodo comune che si presenta come:Risposte IIS con HTML invece di JSON su ASP .NET MVC3
[HttpPost]
public ActionResult DoSomething(int id)
{
try
{
// some useful code
}
catch(Exception ex)
{
Response.StatusCode = 500;
Json(new { message = "error" }, JsonBehaviour.AllowGet)
}
}
Sul lato client nella ENV produzione. quando si è verificato un errore di questo tipo, ajax.response sembra un codice HTML, invece del previsto JSON.
Considerate questo:
<div class="content-container">
<fieldset>
<h2>500 - Internal server error.</h2>
<h3>There is a problem with the resource you are looking for, and it cannot be displayed.</h3>
</fieldset>
</div>
contesto del filtro non è un'opzione. Penso che sia una sorta di problema IIS o web.config.
SOLUZIONE: abbiamo deciso di aggiungere TrySkipIisCustomErrors
in BeginRequest in Global.asax ed è risolto problemi in ogni metodo nella nostra applicazione.
Avete 'return' prima della chiamata di funzione' Json'? – Zoka
@Zoka, sì di corse ** ritorno ** ancora lì. Grazie. – kokosda