我正在尝试获取 IIS 服务器已知的 mime 类型列表(您可以看到我在 2 年前询问并回答了该列表)。复制粘贴的答案包括:
GetObject("IIS://LocalHost/MimeMap")
微软
GetObject("IIS://localhost/mimemap")
KB246068
GetObject("IIS://localhost/MimeMap")
斯科特·汉塞尔曼的博客
new DirectoryEntry("IIS://Localhost/MimeMap"))
堆栈溢出
new DirectoryEntry("IIS://Localhost/MimeMap"))
堆栈溢出
New DirectoryServices.DirectoryEntry("IIS://localhost/MimeMap")
速度评论
你明白了。每个人都同意您使用神奇的路径iis://localhost/mimemap。这很好用,除了它没有的时候。
关于它失败的原因,我能找到的唯一线索来自 IIS MVP,Chris Crowe 的博客:
string ServerName = "LocalHost";
string MetabasePath = "IIS://" + ServerName + "/MimeMap";
// Note: This could also be something like
// string MetabasePath = "IIS://" + ServerName + "/w3svc/1/root";
DirectoryEntry MimeMap = new DirectoryEntry(MetabasePath);
这里有两个线索:
- 他称
iis://localhost/mimemap
元数据库路径。在我看来,这听起来像是通往“元数据库”的某种“路径”。 - 他说通往元数据库的路径可能是别的东西。他举了一个例子来说明它可能是什么样子。
现在,我和整个星球都将“ MetabasePath ”硬编码为
iis://localhost/MimeMap
它应该是什么?代码应该做什么来构造一个有效的 MetabasePath?
注意:我没有收到拒绝访问错误,当您有无效的 MetabasePath 时,错误是相同的,例如iis://localhost/SoTiredOfThis