非常詭異的IIS下由配置檔案加上svg的mime頭導致整個網站的靜態檔案訪問報錯誤
除錯了兩天遇到一個非常詭異的問題 一個系統穩定運行了很多年,是用mvc5+WIN2008R2 + .NET 4.5 +IIS環境下執行,非常穩定,最近想遷移到一臺新的伺服器,為了少麻煩在阿里雲上買了一臺同樣環境的WINDOWS 2008 R2 ,把程式部署上去後報了十分詭異的錯誤。
1.部署新伺服器後,全部動態程式執行正常,但是所有靜態檔案無法載入(圖片,css,js,html)純靜態訪問全部報500錯誤(無法顯示頁面,因為發生內部伺服器錯誤)
單獨訪問任何靜態資源都報這個錯
最後定位到了問題原因,原來在web.config裡關鍵的一句去掉svg的mine配置就正常了。去掉配置節點system.webServer/modules/staticContent/
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
去掉就正常加上就報錯(僅限訪問靜態檔案報錯,動態檔案正常)
這讓人十分詭異 ,最後只有把這一句去掉,去掉也影響不大,因為svg只是一個介面模板要使用的美化圖示之類的,不影響不大,但始終像吃了蒼蠅一樣。有遇到同樣問題的歡迎共勉。
這個莫名奇妙錯誤描述直接顯示文字,沒有詳細錯誤程式碼 ,導致排查過程中被嚴重誤導,以為是環境安裝許可權之類的問題
最後搜尋到一個解決辦法 繁體文章有點類似症狀
https://hant-kb.kutu66.com/mip/12245572
前面加上一句
<remove fileExtension=".svg"/>
以下是嘗試使用的各辦法走了不少彎路
1.嘗試把網站目錄許可權設定在EveryOne完全控制 ,雖然很危險也沒有解決.
2.嘗試把runAllManagedModulesForAllRequests改成=false 或刪除
3.建立獨立的應用程式池來執行
4.應用程式池 高階設定->啟用32位應用程式 設定true
5.嘗試各種重啟 重灌環境。
6.以為頻寬 記憶體不夠,加大頻寬記憶體配置
7.開始網站目錄建立在C盤,然後搬到其他硬碟。
這個問題報錯太詭異走了太多彎路記錄以下給其他遇到的人共勉
&n