Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Simple middleware to test performance of the ASP .NET Core web application
public class Startup
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit
public void ConfigureServices(IServiceCollection services)
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
app.Use(async (context, next) =>
// Do work that doesn't write to the Response.
// e.g. change something in context
// or log something to database
using StreamWriter sw = File.AppendText("some-log-file.txt");
Stopwatch timer = new Stopwatch();
var startTime = DateTime.Now;
var requestId = Guid.NewGuid();
sw.WriteLine("{0}: Request processing started at: {1}", requestId, startTime.ToString("MMM/dd/yyyy hh:mm:ss.ffffff tt"));
// Invoke next middleware
await next.Invoke();
// Do logging or other work that doesn't write to the Response.
var endTime = DateTime.Now;
sw.WriteLine("{0}: Request processing ended at: {1}", requestId, endTime.ToString("MMM/dd/yyyy hh:mm:ss.ffffff tt"));
sw.WriteLine("{0}: Ticks taken by request processing ended at: {1}", requestId, timer.Elapsed.Ticks);
app.Run(async context =>
await context.Response.WriteAsync("My First .NET 5 Web App");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment