IIS - 支援可下載.json格式檔案

網路傳輸格式有MIME格式類型,text/xml, application/json...等,在開發ASP.NET時,其實這些格式類型對應的副檔名已經在IIS上定義,所以在Request相關格式資料時才能準確Mapping到,然而其實.json副檔名預設在IIS上是沒定義的,所以限量要在本篇文章中教大家如何定義JSON檔案,讓網頁能夠取得.json副檔名的json資料。

在沒有明確定義JSON的MIME格式時,如果網頁Request一個.json副檔名的檔案,會發生以下錯誤,此錯誤就是說沒有找到對應的MIME格式,叫你去設定完後才能用。


要設定有兩種方法,第一種是從IIS上下手,從IIS上設定可以選擇全域的MIME設定或單一站台的MIME設定,全域的話,該Server皆會有此MIME設定,單一則只有此站台才有這個MIME設定,下面就交大家如何在IIS上單一站台上設定MIME。

首先打開IIS選擇欲設定的站台,在中間部分找到MIME類型的選項。



Double Click進入設定可以看到目前定義的所有MIME類型,接著在左方按下新增,輸入副檔名與對應的MIME類型。




確定後重新啟動站台就OK。

如果要設定全域的MIME設定就點選站台上一層的本機電腦,按照前面設定OK了。




第二種方式是在ASP.NET專案上下手,限量在這裡用ASP.NET MVC專案作為對象,只要在專案Root底下的Web.config檔加入下列設定:

<system.webServer>
    <staticContent>
        <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>
</system.webServer>

(注意:ASP.NET MVC有兩種Web.config,一個在ASP.NET Root底下,這個Web.config代表的是整個ASP.NET MVC專案的設定;另一個在View資料夾下的Web.config,這個Web.config主要控制該Controller的頁面設定,例如存取權限。)

其實在ASP.NET專案設定好MIME類型後,IIS上該專案的站台MIME類型也會設定好,因為IIS站台也是讀取此專案資料夾內的資料,所以設定也是從Web.config裡取得,故如果想從IIS設定的話建議是設定全域,不然直接從專案裡設定就好了。




留言