如何从中间件委托获取请求Uri

时间:2019-04-09 17:42:51

标签: c# .net asp.net-core

我试图在我的configure方法中记录每个请求(.net core 2.2)的经过时间:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, 
    ILoggerFactory loggerFactory)
{
    app.Use(async (context, next) =>
    {
        Logging.Log.Id = Convert.ToString(new Activity(string.Empty).Id);

        var sw = new Stopwatch();
        sw.Start();
        await next.Invoke();
        sw.Stop();

        Logging.Log.Info($"ElapsedTime: {sw.ElapsedMilliseconds}");
    });

    // rest of method code omitted 
} 

随着时间的流逝,我想显示调用了哪个端点或请求指向的绝对uri。我该如何从上下文对象中获得相同的信息。

1 个答案:

答案 0 :(得分:1)

您的INSERT参数具有context属性,该属性具有您需要的所有有关客户端正在调用的URL的信息。

您可以按照this post来帮助您构造原始网址,也可以仅使用对象为您提供的内容。