using System.Net; using System.Net.Http; using YY.Admin.Helper; namespace YY.Admin.Infrastructure.Network; /// /// 全局断开保护:用户勾选"断开连接"时,直接短路所有后端 HTTP 请求, /// 返回 499 而不发起真实网络调用,各服务的 catch/IsSuccessStatusCode 分支自行降级。 /// internal sealed class DisconnectGuardHandler : DelegatingHandler { protected override Task SendAsync( HttpRequestMessage request, CancellationToken cancellationToken) { if (ServerSettingsStore.Load().DisconnectConnection) { return Task.FromResult(new HttpResponseMessage((HttpStatusCode)499) { ReasonPhrase = "User Disconnected" }); } return base.SendAsync(request, cancellationToken); } }