Azure Web App(MVC)从结果

时间:2018-01-31 07:25:52

标签: asp.net-mvc azure json.net azure-web-sites

我有一个ASP.NET MVC应用程序,我希望我的一个控制器返回JsonResult。所以,我创建了以下类:

    public class TestResponse
    {
        public string ErrorMessage { get; set; }
    }

    public class JsonBadRequestResult : JsonResult
    {
        public JsonBadRequestResult()
        {
        }

        public JsonBadRequestResult(string message)
        {
            this.Data = message;
        }

        public JsonBadRequestResult(object data)
        {
            this.Data = data;
        }

        public override void ExecuteResult(ControllerContext context)
        {
            this.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
            var response = context.HttpContext.Response;
            response.StatusCode = 400;

            base.ExecuteResult(context);
        }
    }

我有一个像这样的简单控制器方法:

[HttpPost]
public ActionResult TestPost()
    {
        return new JsonBadRequestResult(new TestResponse { ErrorMessage = "Test Message" });

    }

当我在本地调用TestPost方法时,我得到了预期的输出。

{
    "ErrorMessage": "Test Message"
}

但是,当我将此应用程序部署为Azure Web App并调用相同的TestPost方法(使用Postman)时,我得到以下输出。输出的Json主体被剥离。

Bad Request

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

正如Swikruti Bose所说,我们可以在Web.config中添加以下设置。它在我身边正常工作。我们可以从httpErrors获取有关document元素的更多信息。

  

PassThrough如果存在现有响应,则保持响应不变

<system.webServer>
<httpErrors existingResponse="PassThrough"/>
</system.webServer>