細說IIS異常日誌 — 你必須知道的功能

最近在跟QAD用Webservice搞接口作數據維護,搞的哥那個叫頭大,遇到不少問題,系統的log4net根本就沒法記錄。話說QAD調我某一個接口,可能包含幾百個字段,並且QAD是個產品,因此我這邊提供的維護接口,必須符合QAD的接口標準。程序員

       

        沒辦法誰讓咱是搞程序的呢,再苦再累也得上。這時候我忽然相倒了,webservice是基於IIS的,那麼基於IIS必須有IIS日誌,那麼我就從IIS日誌入手解決這些問題。web

       

        問題示例:QAD調用我方接口,返回消息「<QdocProcessingException>HTTP/1.1 500 Internal Server Error</QdocProcessingException>」,該接口傳入參數爲對象,對像中包含加密口令,Maintain對象,其中Maintain對象中包含上百個字段,接口方法中有詳細的日誌日錄,方法返回的是一個已定義對象。在QAD調用我方接口的過程當中,並未產生相關日誌記錄。加密

 

        分析:首先從返回消息格式上看,該返回消息並不是是預約義的返回對象,從返回消息內容上看,該消息屬於明顯的500錯誤,也就說確定是我方接口存在一些問題,可是具體是哪裏出問題,如今不清楚。其次從問題中能夠清晰的瞭解QAD並未調用到接口中方法,不然方法中的日誌記錄能夠捕獲到異常信息,從其餘狀況來看,QAD已經調用到我方接口,可是在調用進入方法以前出了一點小差錯,預計多是傳入對象出錯了,可是對象包含上百個字段,如何排查是哪一個出錯了,即使此次排查成功,那麼下次呢。想到此個人汗毛都豎起來了,不過不要緊,誰讓咱是程序員呢。日誌

 

       解決方法:不是有IIS日誌的嗎,注意:iis日誌只會記錄此次請求是500錯誤,可是具體錯誤內容還得配置一番,請看詳解。對象

       

       在IIS配置裏面有個Failed Request Tarcing Rules,咱們New一個Rules。blog

 

      

      咱們來新建一個500錯誤,OK,此次咱們再用QAD來調用一次咱們的接口。接口

      此次咱們發如今C:\inetpub\logs\LogFiles\W3SVC2下面的u_ex120305.txt裏面發現了一條500錯誤,咱們再去看C:\inetpub\logs\FailedReqLogFiles\W3SVC2下面有什麼變化,這時候這個路徑下面多了一些fr0000開頭的XML文件,那麼咱們來打開這個最新的文件,來分析一下。ci

      

      見紅色標註的地方就是問題所在,原來是一個字段的類型定義錯了,致使QAD那邊調用接口在序列化的時候報錯了,問題解決。webservice

相關文章
相關標籤/搜索