擴充設定IIS 預設的副檔名(附上如在visual studio的IIS Express怎麼加)

無奈, 這個問題我一直被同事重複問= =

應該要記錄下來><

問題案例: 一般要下載.zip, 用程式呼叫下載是沒問題的, 不會出現錯誤訊息: System.Net.WebException: 遠端伺服器傳回一個錯誤: (404) 找不到

--> 因為iis 或 IIS Express 認得, 有放進預設的副檔名列表中


而今天如果我們自己設一個副檔名叫.abc好了, 不想用.zip是因不想被外部知道其實是.zip, 減少被盜用或更符合系統需要, 這樣iis 或 IIS Express 就會認不得, 會報錯: System.Net.WebException: 遠端伺服器傳回一個錯誤: (404) 找不到,

有時會有更詳細的錯誤訊息:

HTTP 錯誤 404.3 - Not Found

因為網頁伺服器上設定的多用途網際網路郵件延伸標準 (MIME) 對應原則,而無法提供您要求的網頁。如果此網頁為指令碼,請新增處理常式,而且如果它是應該要下載的檔案,請新增 MIME 對應。


解決方式: 需自行擴充iis 或 IIS Express的預設的副檔名, 方式如下:

1. 在IIS Express加的方式:

- Adding MIME type to be used by Visual Studio 2012 Page Inspector (Web Browser):

https://stackoverflow.com/questions/17011667/adding-mime-type-to-be-used-by-visual-studio-2012-page-inspector-web-browser


2. 在IIS 加的方式:

- IIS 設定 MIME Type:

https://shunnien.github.io/2018/09/13/mime-type-set-for-iis/

e.g. 將 .abc 加上MIME type

<mimeMap fileExtension=".zip" mimeType="application/x-zip-compressed" />

<mimeMap fileExtension=".abc" mimeType="application/x-zip-compressed" />   <-- 這個需設定與上面.zip一樣的mimeType

留言

熱門文章