默认文档文件 <files>

概述

<defaultDocument> 集合的 <files> 元素指定配置为默认文档的文件名列表。 <files> 元素可以包含 <add> 元素的列表,其中列表中的每个项指定要添加到 <files> 列表的唯一文件。

兼容性

版本 说明
IIS 10.0 <files> 元素在 IIS 10.0 中未进行修改。
IIS 8.5 <files> 元素在 IIS 8.5 中未进行修改。
IIS 8.0 <files> 元素在 IIS 8.0 中未进行修改。
IIS 7.5 <files> 元素在 IIS 7.5 中未进行修改。
IIS 7.0 IIS 7.0 中引入了 <defaultDocument> 集合的 <files> 元素。
IIS 6.0 <defaultDocument> 集合替代了 IIsWebService 元数据库对象的 DirBrowseFlags 属性的 IIS 6.0 DefaultDoc 属性和 EnableDefaultDoc 值。

安装

在 IIS 7 的默认安装中包含 <defaultDocument> 集合的 <files> 元素。

操作方式

如何为应用程序或站点添加默认文档

  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. 在“连接”窗格中,展开服务器名称,展开“站点”,然后导航到要为其配置默认文件的网站或应用程序。

  3. 在“主页”窗格中,双击“默认文档”
    Screenshot of Default Document selected in the Default Web Site Home pane.

  4. 在“操作”窗格中,单击“添加...”。

  5. 在“添加默认文档”对话框中,在“名称”框中键入要添加的默认文档的名称,然后单击“确定”
    Screenshot of adding a new Default Document named home dot H T M L.

  6. 如有必要,在“操作”窗格中,选择列表中的默认文档,然后单击“上移”或“下移”以定义 IIS 搜索默认文档列表应使用的顺序。

  7. 在“默认文档”警报框中,单击“是”以拒绝从父配置级别的配置继承,或者单击“否”或“取消”以取消对默认文档顺序的更改。
    Screenshot warning you before inheriting the parent level configuration for the new default document.

  8. 如有必要,在“操作”窗格中单击“删除”来删除任何不想用作默认文档的文件名

配置

特性

无。

子元素

元素 说明
add 可选元素。

将文件名添加到文件集合。
remove 可选元素。

从文件集合中移除对文件名的引用。
clear 可选元素。

从文件集合中移除对文件名的所有引用。

配置示例

以下配置示例,当包含在网站或应用程序的 Web.config 文件中时,将为站点或应用程序启用默认文档。 然后,它会将文件名“Home.html”添加到站点或应用程序的默认文档列表中。

<configuration>
   <system.webServer>
      <defaultDocument enabled="true">
         <files>
            <add value="home.html" />
         </files>
      </defaultDocument>
   </system.webServer>
</configuration>

代码示例

以下示例对名为 Contoso 的网站启用默认文档,然后将名为 Home.html 的文件添加到网站的默认文档列表中。

AppCmd.exe

appcmd.exe set config "Contoso" /section:defaultDocument /enabled:true /+files.[value='home.html']

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("Contoso");
            
            ConfigurationSection defaultDocumentSection = config.GetSection("system.webServer/defaultDocument");
            
            defaultDocumentSection["enabled"] = true;
            
            ConfigurationElementCollection filesCollection = defaultDocumentSection.GetCollection("files");
            ConfigurationElement addElement = filesCollection.CreateElement("add");
            addElement["value"] = @"home.html";
            filesCollection.AddAt(0, addElement);
            
            serverManager.CommitChanges();
        }
    }
}

VB.NET

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

Class Sample
   Shared Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Contoso")
      Dim defaultDocumentSection As ConfigurationSection = config.GetSection("system.webServer/defaultDocument")

      defaultDocumentSection("enabled") = True

      Dim filesCollection As ConfigurationElementCollection = defaultDocumentSection.GetCollection("files")
      Dim addElement As ConfigurationElement = filesCollection.CreateElement("add")
      addElement("value") = "home.html"
      filesCollection.AddAt(0, addElement)

      serverManager.CommitChanges()
   End Sub
End Class

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";

var defaultDocumentSection = adminManager.GetAdminSection("system.webServer/defaultDocument",
   "MACHINE/WEBROOT/APPHOST/Contoso");

defaultDocumentSection.Properties.Item("enabled").Value = true;

var filesCollection = defaultDocumentSection.ChildElements.Item("files").Collection;

var addElement = filesCollection.CreateNewElement("add");
addElement.Properties.Item("value").Value = "home.html";
filesCollection.AddElement(addElement, 0);

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"

Set defaultDocumentSection = adminManager.GetAdminSection("system.webServer/defaultDocument", _
   "MACHINE/WEBROOT/APPHOST/Contoso")

defaultDocumentSection.Properties.Item("enabled").Value = True  

Set filesCollection = defaultDocumentSection.ChildElements.Item("files").Collection

Set addElement = filesCollection.CreateNewElement("add")
addElement.Properties.Item("value").Value = "home.html"
filesCollection.AddElement addElement, 0

adminManager.CommitChanges