Aşağıdaki kod parçasını 400 (Bad Request) le beraber Json mesaj dönmek için kullanıyoruz.
1 2 3 4 5 6 7 8 9 |
[AcceptVerbs(HttpVerbs.Post)] public JsonResult ControllerMesaj(ViewModel model) { // bir takım kontroller vs varsa yapılır ... // 400 koduyla mesaj dönmek istediğimizde Response.StatusCode = 400; return Json(new { Errors = "Özel hata mesajı" }); } |
Localhost için gayet güzel çalışırken Azure ya da sunucu üzerine deploy ettiğinizde sürekli “Bad Request” hatası alıp içeriğinde ise yazdığımız Json bilgisi olmayabilir. Bunun başlıca sebebi IIS in belirttiğiniz hata kodu (burdaki 400) için sizin response değerini eziyor olmasıdır.
Çözüm:
- Web.config içerisine aşağıdaki satırları eklemek
123<system.webServer><httpErrors existingResponse="PassThrough"/></system.webServer> - Kod içerisinde Response.TrySkipIisCustomErrors = true; set etmek.
Daha fazlası için:
http://msdn.microsoft.com/en-us/library/ms690576(v=vs.90).aspx