Listing all routes in ASP.NET Core application

By | 2019-08-30

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


        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 *