1

私はIIS6Webサーバー(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+xmlmimeタイプをどこで入手したのでしょうか?

私が見つけた唯一の場所は、レジストリのHKEY_CLASSES_ROOT\MIME\Databaseです。しかし、私が見つけたすべてのMS情報によると、IISで許可されているmimeタイプのソースは、それ自体のメタベースです。

誰かがこの振る舞いを知っていますか?これにより、IIS管理者が誤った安心感を抱く可能性があります...

みなさん、よろしくお願いします!!

4

1 に答える 1

1

IIS は、メタベースとレジストリ (HKCR\<extension>) からの 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 の 1 行を変更すると、これが修正されます (「 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"
于 2008-12-11T20:22:29.830 に答える