ASP.NET Web API 2 BadRequest内容

时间:2015-07-15 18:18:59

标签: asp.net-web-api2 bad-request

当资源返回BadRequest时,我没有在客户端上收到预期的响应内容。

[HttpGet]
[Route("Test", Name = "Test")]
public async Task<IHttpActionResult> Test()
{
    var result = BadRequest("test");
    return result;
}

在客户端上(参见下面的示例)我只是在正文中收到字符串 Bad Request Bad Request string in content

服务器上的响应似乎很好: Response server side

它在某些时候工作正常(在内容中返回字符串或ModelState),最近我们注意到了这个问题。我无法想到服务器上最近可能导致它的任何变化。

既不在本地也不在服务器上部署。

它可以在项目中的任何ApiController中复制。

返回Ok(“test”); 按预期工作。

有谁知道会导致这种行为的原因?

谢谢!

1 个答案:

答案 0 :(得分:1)

很难说出现了什么问题。

你可以检查的事情:

  • 可能是由无效的身份验证请求引起的错误
  • 尝试使用新项目,如果这样做有所不同,那么您就知道它是您的项目,并且没有因本地IIS和服务器设置而导致的错误(极不可能,但您永远不会知道。
  • 检查您的App_Start文件夹,其中包含BundleConfigRouteConfigFilterConfig, WebApiConfig`。也许某些自定义设置确实会导致错误请求错误,而可能是未找到错误。
  • 检查它是仅在Get请求上还是在其他请求上,可能是由不同版本的程序集引起的。
  • 检查您是否只有400的问题,或者401,500会出现同样的问题吗?
  • 检查您的Web.Config文件,这些文件可能包含可能会重定向的<CustomErrors>,或者引发自己的错误。

经过一些评论后,自定义错误似乎成了问题。