c# - 健康检查,ASP.NET Web API

标签 c# .net asp.net-web-api asp.net-web-api2 health-check

在我的工作中,我被要求在用 C# 编写的 ASP.NET Web API 2 中实现健康检查。我已经搜索过,但所有文档都是针对 ASP.NET Core 及其实现的,有人知道如何在经典/完整的 .NET Framework 中实现健康检查功能吗?

最佳答案

我同意伊戈尔。这是他建议的具体应用(显然,还有其他方法可以做到这一点,但这是我知道如何保持清晰并尊重关注点分离的最佳方法):

  • 创建一个新的 Controller 。在本例中,我将其命名为 HealthController
  • 向 Controller 添加一个 Action ,并使用 [HttpGet]
  • 对其进行注释
  • 将逻辑放在检查外部依赖项稳定性的操作中。例如,如果磁盘访问对您的 API 至关重要,请运行一两次测试以确保磁盘按照您的需要进行响应。如果您需要能够查询数据库,请进行示例查询,并确保它成功。这部分是完全自定义的,实际上取决于您的 API 以及它需要如何执行。
  • public class HealthController : ApiController
    {
        [HttpGet]
        public IHttpActionResult Check()
        {
            // Add logic here to check dependencies
            if (/* successful */)
            {
                return Ok();
            }
    
            return InternalServerError(); // Or whatever other HTTP status code is appropriate
        }
    }
    
  • 让外部服务向您的端点(当前位于 https://whatever.your.domain.is/Health/Check )发出 GET 请求,并在一段时间内未收到 200 OK 时进行报告。

  • 我用过 Amazon CloudWatch过去,我对此很满意。那里会有其他服务可以为您执行此操作,但我对它们没有任何经验。

    关于c# - 健康检查,ASP.NET Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62351410/

    相关文章:

    c# - 如何从照片中获取任意颜色的 channel ?

    asp.net-mvc - OAuthAuthorizationServerProvider 在哪里检查刷新 token 过期?

    c# - Windows 应用程序的动画

    c# - 在 C# 中创建新的 SqlConnection 的开销

    c# - HttpwebRequest - 来自 HRESULT : 0x800710DD 的异常

    .net - 这是一个损坏的主题行吗?

    .net - lightswitch vs2012 中的表单例份验证

    javascript - kendo ui网格查询参数

    c# - WebApi - 请求的资源不支持http方法 'GET'

    c# - 拖放在 C# 中不起作用