c# - 我可以在 ASP 网络核心中返回 504 HTTP 代码吗
问题描述
目前我有一个ExceptionFilterAttribute
处理异常controllers
。我的 API 连接到服务(通过专有 TCP/IP)。如果无法访问此服务,我想返回带有正确错误消息的 HTTP 504 响应代码。
我已经知道如何发送 400
public override void OnException(ExceptionContext context)
{
if (!MyService.IsConnected)
{
context.Result = new BadRequestObjectResult(new ResultInformation() { ResultCode = 2000056, Message = "My service is not reachable" });
}
else
{
context.Result = new BadRequestObjectResult(new ResultInformation() { ResultCode = 0, Message = context.Exception.Message });
}
}
如何更改此代码以发送 504 和错误消息?
解决方案
ObjectResult
手动使用和设置状态码。
//... omitted for brevity
if (!MyService.IsConnected) {
var info = new ResultInformation() {
ResultCode = 2000056,
Message = "My service is not reachable"
};
context.Result = new ObjectResult(info) {
StatusCode = 504
};
}
//... omitted for brevity
大多数需要对象主体的标准状态结果类型实际上是从ObjectResult
它们设置特定状态代码的位置派生的。例如BadRequestObjectResult
如果您不需要实际返回响应正文,则可以改用StatusCodeResult
context.Result = new StatusCodeResult(504);
推荐阅读
- .net-core - 跨项目的 Nuget 包复制
- javascript - 如何连接和跳过谷歌脚本或谷歌 Excel 中的行
- meteor - 什么是流星生产
- html - Flex 可调整大小的子项无法在 Firefox 中调整大小
- mathjax - mathjax-node:在网页上格式化时的输出与在节点项目中不同
- amazon-web-services - AWS Amplify 在尝试登录时抛出 SerializationException
- objective-c - 如何在 objC 类中使用 swift 类引用,并在之前的 swift 文件中同时使用 objC 引用?
- angular - 从 google 地方自动完成功能收到的地方之一不是英文的
- python - 有条件的循环
- datetime - delphi中如何将字符串转换为日期