2016-01-21 69 views
1

我最近爲我的應用程序創建了一個日誌解決方案,藉此我的Web服務器將所有請求/響應數據發送到通過HTTP登錄到日誌服務器。我做這個使用委託處理C#Web Api,響應返回給客戶端後的日誌請求

http://www.asp.net/web-api/overview/advanced/http-message-handlers

這是工作得很好,但我很好奇,是否有一種方法在不要求我登錄的方式來做到這一點消息發送回客戶端之前。記錄消息不會爲最終用戶增加任何價值,所以我希望他們在取回數據之前不必等待日誌邏輯完成。

我想我正在尋找的是某種鉤子,它在消息已經返回給客戶端之後,但在線程消失之前,以及我仍然可以訪問請求和響應的地方被調用。

我要求太多嗎?

謝謝!

回答

1

您可以創建一個單獨的線程來執行日誌記錄,並將響應返回給客戶端瀏覽器。

例如,如果使用Web API 2:

public IHttpActionResult Get(int id) 
{ 
    //create response_data 

    new System.Threading.Tasks.Task(() => 
    { 
    //do the logging 
    }).Start(); 

    return Content(HttpStatusCode.Accepted, response_data); 
} 
相關問題