IIS6 服务未注册的 MIME 类型

Posted

技术标签:

【中文标题】IIS6 服务未注册的 MIME 类型【英文标题】:IIS6 serving unregistered MIME Types 【发布时间】:2010-09-26 05:36:51 【问题描述】:

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

它无需在 IIS 元数据库上注册即可提供 SVG 文件(扩展名为 .svg)。它也没有 * 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_ROOT\MIME\Database。 但根据我找到的所有 MS 信息,IIS 允许的 mime 类型的来源是它自己的元数据库。

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

大家好!!

【问题讨论】:

【参考方案1】:

IIS 合并来自 Metabase 和注册表 (HKCR\) 的 MIME 映射,以获取允许的 Mime 类型列表。

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

adsutil.vbs get /MimeMap/mimemap

不幸的是,它打印出的 mime 地图很糟糕:

D:\Apps\Scripts>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:\Apps\Scripts>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"

【讨论】:

以上是关于IIS6 服务未注册的 MIME 类型的主要内容,如果未能解决你的问题,请参考以下文章

查找新添加的扩展的 MIME 类型

WP8 AET 的 MIME 类型

gob:类型未注册接口:http.gzipReader

未捕获的类型错误:无法读取未定义的属性“注册”

nacos项目启动未注册却到服务里

QMetaProperty::read: 无法处理未注册的数据类型 'QAbstractListModel*'