前言
事情是這樣的,正直愚人節2020/04/01當天,前端同事突然反饋,調試環境接口調用不了了,剛來上班還是通的(感覺是不是被愚了),然后給我接了個圖:
開始搞事
Round 1.
一看圖就開始自信的去找跨域配置那,忽略了圈起來的500報錯(NO,NO,NO,不是這樣,應該是以為500是緊跟下面的跨域策略引起的);
看了一遍配置,配置正確,沒毛病,想着是不是調試環境有問題,然后本機嘗試了一下,沒問題,於是將本機最新代碼發布到調試調試環境,哦豁,還是不行;
顯然,第一回合慘敗;
Round 2.
於是乎我嘗試ping 了前端同事IP,沒有ping通,懷疑網絡問題,那是因為他的IP有點奇怪,電腦IP都是公司統一分配的,我入職幾年了,見到過同事電腦的IP都是192.168.xxx.xxx,然而這個剛入職一周同事的IP是172開頭, 沒有ping通,初步估計是網絡問題,但一想有可能是他防火牆限制我ping,不代表網絡不通,於是讓他ping我, 擦,通的; 然后我訪問他本機上項目,我去能訪問;
顯然,第二回合慘敗;
Round 3.
然后就去測試環境訪問,一輸入地址,擦,報了無情的500; (剛開始沒去測環境,那是之前正常,本機也很正常,所以很自信的忽略了, 反面參考,有問題先從問題發生環境排查;)
查看了IIS日志和Windows日志,沒有異常信息,請求都是Sucessfully,然后找度娘和必應,有的說是路徑配置不對,或者參數問題,一想,茫茫API,這么多,怎么找,不太現實,果斷開啟日志:
果然,日志出來,很顯然的錯誤, 找不到項目中swagger注釋需要的xml文件,如下配置的文件:
一回想,加注釋這個的確是最后加的,在配置swagger的時候用到這個文件了,本地能找到沒問題,但發布的時候,此文件沒發布到的對應文件夾中,最后將文件生成對應文件中,問題解決;
總結
排查問題要從根源走起,不知道錯誤原因,首先去找日志,IIS日志、Windows日志、 或者上文中提到的開啟日志, 有日志就好分析錯誤原因; 所以不要像我”亂搞”一通;