添加静态内容 MIME 映射 <mimeMap>

概述

<staticContent> 元素的 <mimeMap> 元素向静态内容类型的集合中添加唯一的 MIME 类型。 每个 <mimeMap> 条目必须包含两个部分:

  • fileExtension 属性指定的唯一文件扩展名,例如“.txt”、“.png”等。
  • mimeType 属性指定的文件扩展名的 MIME 类型,例如“text/plain”、“image/jpg”等。

注意

IIS 7 不会返回未添加到 <staticContent> 元素或默认情况下在 <handlers> 元素中具有映射的文件类型。 此行为可防止未经授权的访问 IIS 7 配置设置中没有映射的文件。

兼容性

版本 说明
IIS 10.0 <mimeMap> 元素在 IIS 10.0 中未进行修改。
IIS 8.5 <mimeMap> 元素在 IIS 8.5 中未进行修改。
IIS 8.0 <mimeMap> 元素在 IIS 8.0 中未进行修改。
IIS 7.5 <mimeMap> 元素在 IIS 7.5 中未进行修改。
IIS 7.0 IIS 7.0 中引入了 <staticContent> 元素的 <mimeMap> 元素。
IIS 6.0 <mimeMap> 元素替代了 IIS 6.0 MimeMap 元数据库属性。

安装

在 IIS 7 的默认安装中包含 <staticContent> 元素的 <mimeMap> 元素。

操作方式

如何将 MIME 类型添加到网站或应用程序

  1. 打开 Internet Information Services (IIS) 管理器:

    • 如果使用的是 Windows Server 2012 或 Windows Server 2012 R2:

      • 在任务栏上,单击“服务器管理器”,单击“工具”,然后单击“Internet Information Services (IIS)管理器”
    • 如果使用的是 Windows 8 或 Windows 8.1:

      • 按住 Windows 键,按字母 X,然后单击“控制面板”。
      • 单击“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。
    • 如果使用的是 Windows Server 2008 或 Windows Server 2008 R2:

      • 在任务栏上,单击“开始”,指向“管理工具”,然后单击“Internet Information Services (IIS)管理器”
    • 如果使用的是 Windows Vista 或 Windows 7:

      • 在任务栏上,单击“开始”,然后单击“控制面板”。
      • 双击“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。
  2. 在“连接”窗格中,转到要为其添加 MIME 类型的站点、应用程序或目录。

  3. 在“开始”窗格中,双击“MIME 类型”
    Screenshot that shows the Default Web Site Home pane. MIME Types is selected.

  4. 在“MIME 类型”窗格中,单击“操作”窗格中的“添加...”
    Screenshot that shows the MIME Types pane.

  5. 在“添加 MIME 类型”对话框中,添加文件扩展名和 MIME 类型,然后单击“确定”
    Screenshot that shows the Add MIME Type dialog box. Tab is entered in the File name extension box. Text slash plain is entered in the MIME type text box.

配置

特性

属性 说明
fileExtension 必需的字符串属性。

指定 MIME 类型的唯一文件扩展名。

有关默认值的完整列表,请参阅本主题后面的“默认配置”部分
mimeType 必需的字符串属性。

指定使用此类文件扩展名的文件和应用程序的类型。

有关默认值的完整列表,请参阅本主题后面的“默认配置”部分。

子元素

无。

配置示例

以下配置示例将 MIDI 系统独占 (Sysex) 消息和 Guitar Tablature (TAB) 文件的文件类型添加到 IIS,从而使客户端能够下载这些文件类型。

<configuration>
   <system.webServer>
      <staticContent>
         <mimeMap fileExtension=".syx" mimeType="application/octet-stream" />
         <mimeMap fileExtension=".tab" mimeType="text/plain" />
      </staticContent>
   </system.webServer>
</configuration>

代码示例

以下代码示例将 MIDI 系统独占 (Sysex) 消息和 Guitar Tablature (TAB) 文件的文件类型添加到 IIS,从而使客户端能够下载这些文件类型。

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/staticContent /+"[fileExtension='syx',mimeType='application/octet-stream']"

appcmd.exe set config "Default Web Site" -section:system.webServer/staticContent /+"[fileExtension='tab',mimeType='text/plain']"

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetWebConfiguration("Default Web Site");
         ConfigurationSection staticContentSection = config.GetSection("system.webServer/staticContent");
         ConfigurationElementCollection staticContentCollection = staticContentSection.GetCollection();

         ConfigurationElement mimeMapElement = staticContentCollection.CreateElement("mimeMap");
         mimeMapElement["fileExtension"] = @"syx";
         mimeMapElement["mimeType"] = @"application/octet-stream";
         staticContentCollection.Add(mimeMapElement);

         ConfigurationElement mimeMapElement1 = staticContentCollection.CreateElement("mimeMap");
         mimeMapElement1["fileExtension"] = @"tab";
         mimeMapElement1["mimeType"] = @"text/plain";
         staticContentCollection.Add(mimeMapElement1);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")
      Dim staticContentSection As ConfigurationSection = config.GetSection("system.webServer/staticContent")
      Dim staticContentCollection As ConfigurationElementCollection = staticContentSection.GetCollection

      Dim mimeMapElement As ConfigurationElement = staticContentCollection.CreateElement("mimeMap")
      mimeMapElement("fileExtension") = "syx"
      mimeMapElement("mimeType") = "application/octet-stream"
      staticContentCollection.Add(mimeMapElement)

      Dim mimeMapElement1 As ConfigurationElement = staticContentCollection.CreateElement("mimeMap")
      mimeMapElement1("fileExtension") = "tab"
      mimeMapElement1("mimeType") = "text/plain"
      staticContentCollection.Add(mimeMapElement1)

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";
var staticContentSection = adminManager.GetAdminSection("system.webServer/staticContent", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var staticContentCollection = staticContentSection.Collection;

var mimeMapElement = staticContentCollection.CreateNewElement("mimeMap");
mimeMapElement.Properties.Item("fileExtension").Value = "syx";
mimeMapElement.Properties.Item("mimeType").Value = "application/octet-stream";
staticContentCollection.AddElement(mimeMapElement);

var mimeMapElement1 = staticContentCollection.CreateNewElement("mimeMap");
mimeMapElement1.Properties.Item("fileExtension").Value = "tab";
mimeMapElement1.Properties.Item("mimeType").Value = "text/plain";
staticContentCollection.AddElement(mimeMapElement1);

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"
Set staticContentSection = adminManager.GetAdminSection("system.webServer/staticContent", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set staticContentCollection = staticContentSection.Collection

Set mimeMapElement = staticContentCollection.CreateNewElement("mimeMap")
mimeMapElement.Properties.Item("fileExtension").Value = "syx"
mimeMapElement.Properties.Item("mimeType").Value = "application/octet-stream"
staticContentCollection.AddElement(mimeMapElement)

Set mimeMapElement1 = staticContentCollection.CreateNewElement("mimeMap")
mimeMapElement1.Properties.Item("fileExtension").Value = "tab"
mimeMapElement1.Properties.Item("mimeType").Value = "text/plain"
staticContentCollection.AddElement(mimeMapElement1)

adminManager.CommitChanges()