IIS6提供未注册的MIME类型

我有一个IIS6的Web服务器(在Win2003上)有一个奇怪的行为,我猜是一些无证的“功能”...

它提供SVG文件(扩展名.svg),而无需在IIS元数据库中注册它。 它也没有* mime类型。

对于这个请求:

GET /basic/file1.svg HTTP/1.1

该响应包含

HTTP/1.1 200 OK
Content-Length: 32817
Content-Type: image/svg+xml

那么...... IIS在哪里得到了这个image/svg+xml mime类型?

我发现它的唯一地方是在注册表中的HKEY_CLASSES_ROOTMIMEDatabase 。 但根据我发现的所有MS信息,IIS的源代码允许MIME类型是它自己的元数据库。

有谁知道这种行为? 这可能会导致IIS管理员错误的安全感......

祝大家愉快!


IIS合并Metabase和注册表(HKCR <extension>)中的MIME映射以获取允许的MIME类型列表。

要列出元数据库MIME时间,可以使用:

adsutil.vbs get /MimeMap/mimemap

不幸的是,它糟糕地打印出哑剧地图:

D:AppsScripts>adsutil.vbs get /MimeMap/mimemap
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

MimeMap                         : (MimeMapList) ".asx,video/x-ms-asf" ".xml,text/xml" ".tsv,text/tab
-separated-values" ".ra,audio/x-pn-realaudio" ".sv4crc,application/x-sv4crc" ".spc,application/x-pkc
s7-certificates" ".pmc,application/x-perfmon" ".lit,application/x-ms-reader" ".crd,application/x-msc

更改ADSUtil.VBS中的一行修复此问题(请注意“vbCRLF&”):

1655行:

        MimeOutPutStr = MimeOutPutStr & """" & MimeEntry.Extension & "," & MimeEntry.MimeType & """ "

        MimeOutPutStr = MimeOutPutStr & vbCRLF & """" & MimeEntry.Extension & "," & MimeEntry.MimeType & """ "

产生像这样的输出:

D:AppsScripts>adsutil.vbs enum  /MimeMap
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

KeyType                         : (STRING) "IIsMimeMap"
MimeMap                         : (MimeMapList)
".asx,video/x-ms-asf"
".xml,text/xml"
".tsv,text/tab-separated-values"
".ra,audio/x-pn-realaudio"
".sv4crc,application/x-sv4crc"
".spc,application/x-pkcs7-certificates"
".pmc,application/x-perfmon"
".lit,application/x-ms-reader"
".crd,application/x-mscardfile"
链接地址: http://www.djcxy.com/p/46923.html

上一篇: IIS6 serving unregistered MIME Types

下一篇: How Can I get Mime Type in IOS which is not based on extension