Skip to content

Instantly share code, notes, and snippets.

Embed
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 https://go.microsoft.com/fwlink/?LinkID=398940
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"));
timer.Start();
// Invoke next middleware
await next.Invoke();
// Do logging or other work that doesn't write to the Response.
timer.Stop();
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