IIS出錯顯示 在唯一密鑰屬性“fileExtension”設置為“.”時,無法添加類型為“mimeMap”的重復集合項
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
今天淘寶來了一個客戶,站的源碼是一種棋牌源碼,打開源碼時候 出現了錯誤,錯誤是? 在唯一密鑰屬性“fileExtension”設置為“.”時,無法添加類型為“mimeMap”的重復集合項
具體如下,當時沒有來得及截圖,先來一張一樣錯誤圖片的引證吧;
錯誤提示:
問題原因:
在ASP.NET 網站的配置文件中添加了MIME類型,但是運行網站后在IIS上和頁面上提示"在唯一密鑰屬性“fileExtension”設置為“.woff”時,無法添加類型為“mimeMap”的重復集合項"這個錯誤。后來經過排查,是由于重復設置了MIME類型的文件擴展名造成的。
解決方式:
解決設置fileExtension屬性出現類型集合項添加重復的方法
比如在網站中web.config文件的配置是這樣的:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".woff" mimeType="font/x-font-woff" />
<mimeMap fileExtension=".xap" mimeType="xapapplication/x-silverlight"/>
<mimeMap fileExtension=".xaml" mimeType="application/xaml+xml"/>
</staticContent>
</system.webServer>
如果IIS中已經有設置.xaml和 .xap這兩個擴展名,那么IIS就會提示:在唯一密鑰屬性“fileExtension”設置為“.xaml”(或者.xap)時,無法添加類型為“mimeMap”的重復集合項。
PS:具體的提示信息是根據自己所添加的MIME類型的擴展名來的,比如我添加的是.woff,所以提示的是.woff這個擴展名無法添加重復集合項
所以一般我們要在配置文件中添加MIME?Type,就得先使用remove節點刪除掉要添加的MIME,防止重復。正確的配置文件代碼如下:
<system.webServer>
<staticContent>
<remove fileExtension=".woff" />
<remove fileExtension=".xap" />
<remove fileExtension=".xaml" />
<mimeMap fileExtension=".woff" mimeType="font/x-font-woff" />
<mimeMap fileExtension=".xap" mimeType="xapapplication/x-silverlight"/>
<mimeMap fileExtension=".xaml" mimeType="application/xaml+xml"/>
</staticContent>
</system.webServer>
出現此異常錯誤的原因
一般來說,我們之所以要在ASP.NET網站的web.config中添加MIME類型,是因為在IIS中并沒有設置這個MIME類型,而且因為某些原因我們只能在網站的web.config配置文件中添加mimeMap(比如我們沒有權限進入服務器等情況)。
這樣就可以能出現一個問題:假設當前網站發布到新的服務器中,此時新服務器上的IIS默認已經有設置這個MIME類型,而我們網站web.config配置文件也設置了mimeMap的mimeType,這樣重復添加MIME類型就會提示mimemap在集合項目設置中重復了!
所以正如上面的解決方法那樣,要么使用remove節點刪除重復,要么就在配置文件和IIS中二選一來設置。
通過以上的操作方式就可以解決以上問題;
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!