ASP.NET Core中間件計算Http請求時間示例詳解
ASP.NET Core通過RequestDelegate這個委托類型來定義中間件
public delegate Task RequestDelegate(HttpContext context);
可將一個單獨的請求委托并行指定為匿名方法(稱為并行中間件),或在類中對其進行定義??赏ㄟ^Use,或在Middleware類中配置要傳遞給委托執(zhí)行的方法(參數(shù)類型HttpContext,返回值類型Task)。
public static IApplicationBuilder Use(this IApplicationBuilder app, Func<HttpContext, Func<Task>, Task> middleware); public static IApplicationBuilder UseMiddleware<TMiddleware>(this IApplicationBuilder app, params object[] args);
通過定義一個中間件類 來計算http請求的時間,例:
public class ResponseTimeMiddleware
{
// Name of the Response Header, Custom Headers starts with "X-"
private const string RESPONSE_HEADER_RESPONSE_TIME = "X-Response-Time-ms";
// Handle to the next Middleware in the pipeline
private readonly RequestDelegate _next;
public ResponseTimeMiddleware(RequestDelegate next)
{
_next = next;
}
public Task InvokeAsync(HttpContext context)
{
// Start the Timer using Stopwatch
var watch = new Stopwatch();
watch.Start();
context.Response.OnStarting(() => {
// Stop the timer information and calculate the time
watch.Stop();
var responseTimeForCompleteRequest = watch.ElapsedMilliseconds;
// Add the Response time information in the Response headers.
context.Response.Headers[RESPONSE_HEADER_RESPONSE_TIME] = responseTimeForCompleteRequest.ToString();
return Task.CompletedTask;
});
// Call the next delegate/middleware in the pipeline
return this._next(context);
}
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。
相關文章
Entity Framework Core使用控制臺程序生成數(shù)據(jù)庫表
這篇文章介紹了Entity Framework Core使用控制臺程序生成數(shù)據(jù)庫表的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03
Linux安裝.Net core 環(huán)境并運行項目的方法
這篇文章主要介紹了Linux安裝.Net core 環(huán)境并運行項目,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08
.NET Core Windows環(huán)境安裝配置教程
這篇文章主要為大家詳細介紹了.NET Core Windows環(huán)境安裝配置教程,感興趣的小伙伴們可以參考一下2016-07-07
ASP.NET Core應用錯誤處理之三種呈現(xiàn)錯誤頁面的方式
這篇文章主要給大家介紹了關于ASP.NET Core應用錯誤處理之三種呈現(xiàn)錯誤頁面的方式的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-01-01
Server Application Unavailable出現(xiàn)的原因及解決方案小結(jié)
今天在服務器安裝了個.net 4.0 framework(原本有1.0和2.0的),配置好站點后,選擇版本為4.0,訪問出錯,asp.net經(jīng)常會出現(xiàn)這個問題,這里腳本之家簡單的給整理下2012-05-05

