ASP.NET Web API 2 BadRequest 内容
ASP.NET Web API 2 BadRequest content
当资源 returns BadRequest 时,我没有在客户端收到预期的响应内容。
[HttpGet]
[Route("Test", Name = "Test")]
public async Task<IHttpActionResult> Test()
{
var result = BadRequest("test");
return result;
}
在客户端(参见下面的 hurl.it 示例)我只是在正文中收到字符串 Bad Request:
服务器上的响应似乎没问题:
它在某些时候工作正常(returning 字符串或内容中的 ModelState),最近我们注意到了这个问题。我想不出任何可能导致它的服务器最近的变化。
它既不能在本地工作,也不能部署在服务器上。
可以在项目中任意ApiController中复现
return 好的("test"); 按预期工作。
有谁知道什么会导致这种行为?
谢谢!
很难说哪里出了问题。
您可以检查的内容:
- 可能是您的错误是由无效的身份验证请求引起的
- 尝试一个新项目,如果这有所不同,那么您就知道这是您的项目,并且没有由您的本地 IIS 和服务器设置引起的错误(极不可能,但您永远不会知道。
- 检查您的 App_Start 文件夹,其中包含
BundleConfig
、RouteConfig
、FilterConfig,
WebApiConfig`。也许某些自定义设置确实会导致您收到错误的请求错误,而这可能是未找到的错误。
- 检查是仅在Get请求上还是在其他请求上,可能是程序集版本不同造成的。
- 检查您是否只有 400 有问题,或者 401、500 是否也有同样的问题?
- 检查您的 Web.Config 文件,这些文件可能包含
<CustomErrors>
可能会重定向,或抛出自己的错误。
经过一些评论,自定义错误似乎是问题所在。
当资源 returns BadRequest 时,我没有在客户端收到预期的响应内容。
[HttpGet]
[Route("Test", Name = "Test")]
public async Task<IHttpActionResult> Test()
{
var result = BadRequest("test");
return result;
}
在客户端(参见下面的 hurl.it 示例)我只是在正文中收到字符串 Bad Request:
服务器上的响应似乎没问题:
它在某些时候工作正常(returning 字符串或内容中的 ModelState),最近我们注意到了这个问题。我想不出任何可能导致它的服务器最近的变化。
它既不能在本地工作,也不能部署在服务器上。
可以在项目中任意ApiController中复现
return 好的("test"); 按预期工作。
有谁知道什么会导致这种行为?
谢谢!
很难说哪里出了问题。
您可以检查的内容:
- 可能是您的错误是由无效的身份验证请求引起的
- 尝试一个新项目,如果这有所不同,那么您就知道这是您的项目,并且没有由您的本地 IIS 和服务器设置引起的错误(极不可能,但您永远不会知道。
- 检查您的 App_Start 文件夹,其中包含
BundleConfig
、RouteConfig
、FilterConfig,
WebApiConfig`。也许某些自定义设置确实会导致您收到错误的请求错误,而这可能是未找到的错误。 - 检查是仅在Get请求上还是在其他请求上,可能是程序集版本不同造成的。
- 检查您是否只有 400 有问题,或者 401、500 是否也有同样的问题?
- 检查您的 Web.Config 文件,这些文件可能包含
<CustomErrors>
可能会重定向,或抛出自己的错误。
经过一些评论,自定义错误似乎是问题所在。