将CorrelationId添加到ASP.NET MVC5中的远程调用

时间:2018-08-04 06:36:53

标签: c# asp.net-mvc owin

我使用Delgating处理程序向我的应用程序的内向请求添加相关ID。

但是,我的MVC应用通过他们提供的webapi客户端频繁调用远程域 https://remoteservice.net/xyz 。远程服务API允许用户通过请求标头设置关联ID,但是Webapi客户端没有提供公开该ID的方法。

因此,我现在正在考虑通过owin管道为来自我的MVC应用程序的所有传出远程调用设置关联ID。这可能吗?有帮助吗?

1 个答案:

答案 0 :(得分:0)

您可以扩展HttpClientHandler并在其中添加一个correlationId标头:

public class CorrelatingHandler : HttpClientHandler
 {
    protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            request.Headers.Add("currelationId", Guid.NewGuid());

            return base.SendAsync(request, cancellationToken);
        }
 }



using(var client = new HttpClient(new CorrelatingHandler())){
  .....
}

来源:https://forums.asp.net/post/6025521.aspx