我们正在覆盖System.Net.Http.DelegatingHandler上的SendAsync方法,以便运行一些自定义逻辑:
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
//logic block 1
var response = await base.SendAsync(request, cancellationToken);
//logic block 2
}
此外,在请求调用中,我们正在进行gRPC调用。
我们看到的问题是,有时当发生错误时,逻辑块2中的代码不会运行,并且没有明确的理由说明为什么每次我们看到错误时都不会发生这种情况。 我们只在IIS服务器上看到此问题,当我们尝试在本地重新创建此错误时,我们无法重现它。
我们感觉由于gRPC的不可用性或超时而导致http消息生命周期缩短。
对此事的任何想法都表示赞赏!