Listing all routes in ASP.NET Core application

It is pretty simple to list all routes configured in your ASP.NET Core application:

  1. Add Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider parameter to your Startup.Configure method.
  2. If you have not done so already also add the ILogger<Startup> parameter to Startup.Configure as well
  3. Loop through all action descriptor items in the IActionDescriptorCollectionProvider and display the log information

Here is an example Startup method:

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILogger log, Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider actionProvider)
    {
        log.Log(LogLevel.Information, "Configuring application ...");

        /// .... configuration

        app.UseMvc();

        log.Log(LogLevel.Information, "Available routes:");
        var routes = actionProvider.ActionDescriptors.Items.Where(x => x.AttributeRouteInfo != null);
        foreach(var route in routes)
        {
            log.Log(LogLevel.Debug, $"{route.AttributeRouteInfo.Template}");
        }

        log.Log(LogLevel.Information, "... finished configuring application");
    }

Leave a Reply

Your email address will not be published. Required fields are marked *