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

        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");
    }

One thought on “Listing all routes in ASP.NET Core application

  1. Keith

    Hey is there a way to do this in .net core 6, being that the startup.cs file is gone. I’m pretty new starting out while .Net is introducing some newer things from other older tutorials. Thanks

    Reply

Leave a Reply

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