問題描述
在使用Azure App Service時候,我們有時候對 一些請求發生錯誤毫無頭緒,能從錯誤程式碼中知道請求錯誤,但是更多的資訊呢? 當我們需要更多的資訊時候,通常有以下的一些方式來查詢問題:
- 在瀏覽器中開啟開發者模式(F12),檢視Network的記錄,分析那些請求錯誤,找出請求Header及Response...
- 使用Fiddler抓取本機發出的請求記錄...
- 在程式碼中新增更多的業務日誌,檢視程式碼執行到哪一行才出現錯誤...
- 使用Postman傳送請求,驗證是否時請求的Header或Body不匹配...
但是,Azure App Service作為PaaS服務(平臺即服務),提供了非常有幫助的錯誤請求日誌 - FREB日誌。 以下的內容就介紹如何開啟Freb日誌,如何檢視日誌,及在日誌中能發現有用的資訊。
開啟FREB日誌
進入App Service的App Service logs頁面,開啟Failed request tracing。
Failed Request Tracking
Detailed information on failed requests including the web server components which were used to process the request and time that was taken to process the request.
Detailed Error Messages
If the error code is greater than 400, the app service can store the HTML pages which otherwise would have been sent to the client. These pages can be useful to identify / troubleshoot the error.
檢視FREB日誌
一:登入Kudu站點 (App Service --> Advanced Tools 頁面 --> GO 或者在app Service的URL中新增.scm,如:https://xxxxxxxxxxxx.scm.chinacloudsites.cn)
二:進入D:\home\LogFiles\W3SVC開頭的目錄,選中如錯誤請求時間點匹配的檔案,點選右邊的“下載按鈕”,FREB日誌顯示為可閱讀格式。
(注:如需要拷貝出去,當需要友好的閱讀體驗時,也需要在同一目錄檔案中包含freb.xml檔案)
從FREB中分析內容
檢視Request在IIS中最終所到達時候的Header資訊,是否有缺少默寫敏感的資訊,如Authorization。
檢視Request的所經歷的Module及錯誤程式碼