2012-06-21 82 views
5

我正在尋找一種功能,以在ASP.NET MVC 4 Web Api中啓用登錄/跟蹤功能。 在WCF中,您可以激活日誌記錄,WCF會寫入它正在執行的操作。然後,我可以打開轉儲並搜索錯誤。ASP.NET MVC 4 Web Api:診斷功能

我不想跟蹤我的web api,但記錄了框架正在做的事情。 如果我使用消息處理程序跟蹤/記錄web api,如果在執行之前發生錯誤,則不會獲得任何信息。

回答

4

我推薦兩件事。

1)要詳細瞭解拋出的異常,我會將錯誤策略設置爲always。這應該從你的代碼中返回更多的細節異常消息。

GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always; 

我認爲這隻適用於RC雖然。

2)然後,我還建議連線一個消息處理程序,您可以使用額外的請求/響應信息。消息處理程序將在新請求進入時和最終響應返回之前運行。這裏有很多這樣的例子。 WebAPIContrib有一個在它的GitHub repo你可以爲example

3)如果要監視其他服務器事件看一看,你可能要爲你的ASP託管考慮使用asp.net health monitoring,只要。當然網絡。它可以讓你做各種審計和監視服務器錯誤。

+0

嗨,我不想使用消息處理程序,因爲他們不會在這種情況下工作。我需要一個框架正在做的日誌。例如,如果服務器啓動時發生錯誤,則消息處理程序將不會被調用。 – user437899

+0

然後服務器錯誤不會特定於web api。你看過健康監測嗎?我可以添加一些鏈接到我的答案 – cecilphillip

+4

你應該*永遠不會*在生產環境中使用** IncludeErrorDetailPolicy.Always **這是一個信息Diclosure漏洞:異常包含細節,可用於找到一種方法來破解你的系統(請參閱https://www.owasp.org/index.php/Information_Leak_(information_disclosure)) – Isantipov