如何为Azure上已部署的.NET应用添加Azure健康检查?
关于Azure上.NET应用添加健康检查的问题解答
是否需要修改应用并重新部署?
- 如果只需要基础健康检查(仅验证应用是否能响应HTTP请求):无需修改应用代码,直接在Azure Portal配置即可,不用重新部署。
- 如果需要自定义健康检查(比如验证数据库连接、依赖服务可用性、业务逻辑状态等):必须修改应用代码添加健康检查端点,之后重新部署应用到Azure。
具体操作步骤
一、基础健康检查(无需修改代码)
- 登录Azure Portal,找到你的.NET应用对应的App Service资源。
- 在左侧导航栏的监控分类下,选择健康检查。
- 开启健康检查开关,设置检查路径(默认是
/,可保持默认或修改为你的应用已存在的可访问路径,比如/home)。 - 配置检查间隔、超时时间、失败阈值等参数(根据需求调整,比如间隔1分钟,超时30秒,失败3次后标记为不健康)。
- 保存配置,Azure会自动开始定期检查应用状态,不健康时会触发自动重启实例等操作(可在健康检查页面配置后续动作)。
二、自定义健康检查(需修改代码+重新部署)
步骤1:在.NET应用中添加健康检查代码
- 若为.NET 6+(最小API或MVC):
- 在
Program.cs中注册健康检查服务:builder.Services.AddHealthChecks() // 示例:添加SQL Server数据库连接检查 .AddSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")) // 可继续添加其他依赖检查,比如Redis、外部API等 .AddRedis(builder.Configuration.GetConnectionString("RedisConnection")); - 映射健康检查端点:
app.MapHealthChecks("/health");
- 在
- 若为.NET Framework:
- 安装
Microsoft.AspNet.WebApi.HealthChecksNuGet包。 - 创建ApiController并添加健康检查逻辑:
public class HealthController : ApiController { [HttpGet] [Route("health")] public IHttpActionResult GetHealthStatus() { // 自定义检查:验证数据库连接 try { using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString)) { conn.Open(); } return Ok("Healthy"); } catch (Exception ex) { return InternalServerError(ex); } } }
- 安装
步骤2:重新部署应用到Azure
使用你日常的部署方式(比如Azure DevOps、GitHub Actions、Visual Studio发布),将修改后的应用重新部署到Azure App Service。
步骤3:在Azure Portal配置健康检查
- 进入App Service的健康检查页面,开启开关。
- 将检查路径设置为你配置的自定义端点(比如
/health)。 - 调整检查间隔、超时、失败阈值等参数,保存配置。
内容的提问来源于stack exchange,提问作者Traci
相关产品推荐
相关产品推荐

