ASP.NET Core中间件:记录请求执行耗时
2019-05-15 10:57
483 查看
中间件类似以前的HttpModule,在请求管道中用来集中处理某些事情,比如:记日志,异常处理,权限验证等等。
中间件在Startup.cs中的Configure()方法中注册。
ASP.NET Core 请求管道执行流程。从Request开始,依次执行每个中间件的逻辑。
实例:创建ASP.NET Core Middleware(中间件),记录请求执行耗时
第1步,创建项目
第2步,创建MyMiddleware.cs
创建MyMiddleware类
[code] public class MyMiddleware { private DateTime _startTime; private readonly RequestDelegate _next; public MyMiddleware(RequestDelegate next) { _next = next; } public async Task InvokeAsync(HttpContext context) { _startTime = DateTime.Now; // Call the next delegate/middleware in the pipeline await _next(context); await context.Response.WriteAsync("执行耗时:" + (DateTime.Now - _startTime).TotalSeconds.ToString() + "s"); } }
添加中间件扩展
[code]public static class MyMiddlewareExtensions { public static IApplicationBuilder UseMyMiddleware( this IApplicationBuilder builder) { return builder.UseMiddleware<MyMiddleware>(); } }
在Startup.cs的Configure()方法中注册中间件
[code] public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseMyMiddleware(); //注册中间件 app.UseMvc(); }
F5运行项目,页面最下方就会插入耗时内容
相关文章推荐
- 学习ASP.NET Core, 怎能不了解请求处理管道[5]: 中间件注册可以除了可以使用Startup之外,还可以选择StartupFilter
- 学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?
- 学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?
- ASP.NET Core应用针对静态文件请求的处理[4]: DirectoryBrowserMiddleware中间件如何呈现目录结构
- ASP.NET Core应用针对静态文件请求的处理[5]: DefaultFilesMiddleware中间件如何显示默认页面
- ASP.NET Core应用针对静态文件请求的处理[3]: StaticFileMiddleware中间件如何处理针对文件请求
- ASP.NET Core中间件计算Http请求时间示例详解
- ASP.NET服务器端执行耗时操作的工作记录
- ASP.NET Core中间件计算Http请求时间
- 学习ASP.NET Core,你必须知道“中间件”是什么?中间件如何注册?请求处理管道是如何通过中间件构建的?
- ASP.NET Core 2.0 集成测试无法执行的问题
- 详解ASP.NET Core应用中如何记录和查看日志
- 学习ASP.NET Core, 怎能不了解请求处理管道[4]: 应用的入口——Startup
- ASP.NET Core应用错误处理之StatusCodePagesMiddleware中间件针对响应码呈现错误页面
- asp.net 结合ajax实现数据异步请求的同步执行问题
- ASP.NET Core中使用Graylog记录日志
- ASP.NET Chart 控件出错 为 ChartImg.axd执行子请求时出错
- 解决 ASP.NET Chart 控件出错 为 ChartImg.axd 执行子请求时出错
- [译]ASP.NET Core 2.0 中间件
- [译]ASP.NET Core 2.0 中间件