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