Why is middleware not being registered?

125 Views Asked by At

I have this middleware which I have some issues with being registered in my yarp reverse proxy.

according to the documentation it should be added like this?

program.cs

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddReverseProxy().LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"));

var app = builder.Build();
app.MapReverseProxy(proxyPipeline =>
{
    proxyPipeline.UseRequestResponseLogging();
});
app.UseHttpsRedirection();
app.Run();

requestresponseloggingmiddleware.cs

public partial class RequestResponseLoggerMiddleware
{
    private readonly RequestDelegate _next;
    private readonly ILogger _logger;
    private readonly RecyclableMemoryStreamManager _recyclableMemoryStreamManager;

    public RequestResponseLoggerMiddleware(RequestDelegate next,
                                    ILoggerFactory loggerFactory)
    {
        _next = next;
        _logger = loggerFactory
                  .CreateLogger<RequestResponseLoggerMiddleware>();
        _recyclableMemoryStreamManager = new RecyclableMemoryStreamManager();

    }

    [LoggerMessage(0, LogLevel.Information, "Received request - requestUrl={requestUrl}")]
    partial void LogRequest(string requestUrl);

    public async Task Invoke(HttpContext context)
    {
        LogRequest(context.Request.Path);
        //code dealing with the request

        await _next(context);

        //code dealing with the response
        LogRequest(context.Request.Path);

    }

    private async Task LogResponse(HttpContext context)
    {
        console.log("i was called");
    }

RequestResponseLoggerMiddlewareExtensions.cs

public static class RequestResponseLoggerMiddlewareExtensions
{
    public static IApplicationBuilder UseRequestResponseLogging(this IApplicationBuilder builder)
    {
        return builder.UseMiddleware<RequestResponseLoggerMiddleware>();
    }
}

but when I run it i see nothing in there?

0

There are 0 best solutions below