共用方式為


WebDAV 檔案系統 < 檔案系統檔案系統>

概觀

元素 <fileSystem><authoring> 元素會指定 WebDAV 模組如何與基礎檔案系統互動。 更具體來說, <fileSystem> 元素包含屬性,定義檔案作業是否應該是交易式,以及隱藏檔案或虛擬目錄是否會在屬性要求中傳回,這些屬性通常用於目錄清單。

相容性

版本 備註
IIS 10.0 <fileSystem> IIS 10.0 中未修改專案。
IIS 8.5 <fileSystem> 在 IIS 8.5 中修改專案。
IIS 8.0 在 IIS 8.0 中未修改專案 <fileSystem>
IIS 7.5 元素 <fileSystem><authoring> 元素會隨附為 IIS 7.5 的功能。
IIS 7.0 元素 <fileSystem><authoring> 元素是在 WebDAV 7.0 中引進,這是 IIS 7.0 的個別下載。
IIS 6.0 N/A

注意

適用于 IIS 7.0 的 WebDAV 7.0 和 WebDAV 7.5 模組隨附頻外,需要從下列 URL 下載並安裝模組:

https://www.iis.net/expand/WebDAV

使用 Windows 7 和 Windows Server 2008 R2 時,WebDAV 7.5 模組隨附為 IIS 7.5 的功能,因此不再需要下載 WebDAV。

安裝程式

若要支援 Web 服務器的 WebDAV 發佈,您必須安裝 WebDAV 模組。 若要這樣做,請使用下列步驟。

Windows Server 2012 或 Windows Server 2012 R2

  1. 在工作列上,按一下 [伺服器管理員]
  2. 伺服器管理員中,按一下 [管理]功能表,然後按一下 [新增角色和功能]。
  3. 在 [ 新增角色和功能 精靈] 中,按 [下一步]。 選取安裝類型,然後按 [ 下一步]。 選取目的地伺服器,然後按 [ 下一步]。
  4. 在 [ 伺服器角色 ] 頁面上,依序展開 [Web 服務器] ([IIS) ]、[ 網頁伺服器]、[ 一般 HTTP 功能],然後選取 [WebDAV 發佈]。 按一下 [下一步] 。
    此螢幕擷取畫面顯示已選取 [Web DAV 發佈] 展開的 [Web 服務器] 和 [一般 H T T P 功能] 窗格。
  5. 在 [選取功能] 頁面上,按 [下一步]
  6. 在 [確認安裝選項] 頁面上,按一下 [安裝]
  7. 在 [結果] 頁面上,按一下 [關閉]

Windows 8 或Windows 8.1

  1. 在 [開始] 畫面上,將指標全部移至左下角,以滑鼠右鍵按一下 [開始] 按鈕,然後按一下[主控台]。
  2. 主控台中,按一下 [程式和功能],然後按一下 [開啟或關閉 Windows 功能]。
  3. 序展開 [Internet Information Services]、[ 萬維網服務]、[ 通用 HTTP 功能],然後選取 [WebDAV 發佈]。
    [開啟或關閉 Windows 功能] 頁面中 [開啟或關閉一般 H T T P 功能] 窗格的螢幕擷取畫面,其中已選取 [Web DAV 發佈]。
  4. 按一下 [確定]。
  5. 按一下 [關閉] 。

Windows Server 2008 R2

  1. 在工作列上,按一下 [開始],指向 [系統管理工具],然後按一下[伺服器管理員]。
  2. [伺服器管理員階層] 窗格中,展開 [角色],然後按一下 [Web 服務器] (IIS)
  3. [Web 服務器 (IIS) ] 窗格中,捲動至 [ 角色服務 ] 區段,然後按一下 [ 新增角色服務]。
  4. 在 [新增角色服務精靈] 的 [選取角色服務] 頁面上,展開[一般 HTTP 功能],選取[WebDAV 發佈],然後按 [下一步]。
    此螢幕擷取畫面顯示 [新增角色服務精靈] 中的 [選取角色服務] 頁面,其中已從 [一般 H T T P 功能] 窗格選取 [Web DAV 發佈]。
  5. 在 [確認安裝選項] 頁面上,按一下 [安裝]
  6. 在 [結果] 頁面上,按一下 [關閉]

Windows 7

  1. 在工作列上,按一下 [開始],然後按一下[主控台]。
  2. 主控台中,按一下 [程式和功能],然後按一下 [開啟或關閉 Windows 功能]。
  3. 展開 [Internet Information Services],然後展開 [萬維網服務],然後展開 [通用 HTTP 功能]。
  4. 選取 [WebDAV 發佈],然後按一下 [ 確定]。
    螢幕擷取畫面顯示已展開的 [一般 H T T P 功能] 窗格,並已選取 [Web DAV 發佈]。

Windows Server 2008 或 Windows Vista

作法

如何允許 WebDAV 回應中列出隱藏的檔案

  1. (IIS) 管理員開啟 Internet Information Services

    • 如果您使用 Windows Server 2012 或 Windows Server 2012 R2:

      • 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services] ([IIS) 管理員]。
    • 如果您使用 Windows 8 或 Windows 8.1:

      • 按住Windows鍵,按字母X,然後按一下[主控台]。
      • 按一下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
    • 如果您使用 Windows Server 2008 或 Windows Server 2008 R2:

      • 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
    • 如果您使用 Windows Vista 或 Windows 7:

      • 在工作列上,按一下 [開始],然後按一下[主控台]。
      • 按兩下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
  2. 在 [ 連線 ] 窗格中,展開伺服器名稱,然後移至您要啟用 WebDAV 發行的月臺、應用程式或目錄。

  3. 在 [ 首頁] 窗格中,按兩下 [WebDAV 撰寫規則]。
    首頁窗格中 Web DAV 撰寫規則功能的螢幕擷取畫面。Web DAV 設定會顯示在 [動作] 窗格中。

  4. 在 [ 動作] 窗格中,按一下 [WebDAV 設定...

  5. [WebDAV 設定]窗格中,如果您想要在屬性回應中傳回隱藏檔案的屬性,請選擇 [允許隱藏檔案列出] 的 [True] ;否則,請選擇[False]。
    [Web DAV 設定] 窗格的螢幕擷取畫面,其中 [允許隱藏的檔案已列出] 選項設定為 True。[動作] 窗格中會顯示 [套用] 選項。

  6. 在 [動作] 窗格中按一下 [套用]

組態

專案 <fileSystem> 只能在ApplicationHost.config檔案的月臺層級設定。 忽略其他 <fileSystem> 層級或Web.config檔案中的任何元素。

屬性

屬性 描述
allowHiddenFiles 選擇性 Boolean 屬性。 如果 WebDAV 會在屬性要求的回應中顯示隱藏的檔案,則為true;否則為false

注意: 即使檔案可能隱藏在屬性要求中,仍然可以直接要求它們。 例如,如果您隱藏網站的Web.config檔案,它不會顯示在目錄清單中,但如果您知道路徑存在,您仍然可以在 WebDAV 型編輯器中開啟檔案。 預設值是 false
useTransactionalIo 選擇性 Boolean 屬性。 屬性 useTransactionalIo 會指定檔案作業是否應該是交易式。 例如,交易式處理有助於定義伺服器的行為,如果用戶端傳送一系列檔案的 MOVE 要求,而且目的地在完成整個作業之前會用完儲存空間。 啟用交易處理後,整個作業應該會失敗。 停用交易處理時,作業只會部分成功,而且檔案會分散在來源和目的地之間。

當設定為 false時,WebDAV 模組將不會強制執行任何類型的交易處理。 當設定為 true時,如果基底檔案系統無法交易,WebDAV 模組會藉由失敗作業來強制執行交易處理。 預設值是 false
hideChildVirtualDirectories 選擇性 Boolean 屬性。

如果虛擬目錄從 WebDAV 要求隱藏,則為true;否則為false

注意: 此屬性已新增至 WebDAV 7.5 和 IIS 7.5。

預設值是 false

子元素

無。

組態範例

下列範例會列出預設網站的範例 <webdav> 專案。 本範例會清除任何現有的撰寫規則、為系統管理員群組新增單一規則、啟用 WebDAV 撰寫、指定允許隱藏的檔案、啟用 WebDAV 鎖定和指定鎖定提供者,以及啟用 WebDAV 屬性,以及指定屬性對應的預設 XML 命名空間。

<location path="Default Web Site">
   <system.webServer>
      <webdav>
         <authoringRules defaultAccess="none" allowNonMimeMapFiles="true" defaultMimeType="text/plain">
            <clear />
            <add roles="administrators" path="*" access="Read, Write, Source" />
         </authoringRules>
         <authoring enabled="true" requireSsl="false">
            <fileSystem allowHiddenFiles="true" />
            <locks enabled="true" lockStore="webdav_simple_lock" requireLockForWriting="false" />
            <properties allowAnonymousPropfind="false" allowInfinitePropfindDepth="false" allowCustomProperties="true">
               <clear />
               <add xmlNamespace="*" propertyStore="webdav_simple_prop" />
            </properties>
         </authoring>
      </webdav>
   </system.webServer>
</location>

範例程式碼

下列範例會設定 WebDAV 檔案系統設定,以便在屬性查詢回應中傳回隱藏的檔案和虛擬目錄。

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/webdav/authoring /fileSystem.allowHiddenFiles:"True" /fileSystem.hideChildVirtualDirectories:"True" /commit:apphost

注意

當您使用AppCmd.exe設定這些設定時,請務必將 認可 參數 apphost 設定為 。 這會將組態設定認可至ApplicationHost.config檔案中適當的位置區段。

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.GetApplicationHostConfiguration();
         ConfigurationSection authoringSection = config.GetSection("system.webServer/webdav/authoring", "Default Web Site");

         ConfigurationElement fileSystemElement = authoringSection.GetChildElement("fileSystem");
         fileSystemElement["allowHiddenFiles"] = true;
         fileSystemElement["hideChildVirtualDirectories"] = true;

         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.GetApplicationHostConfiguration
      Dim authoringSection As ConfigurationSection = config.GetSection("system.webServer/webdav/authoring", "Default Web Site")

      Dim fileSystemElement As ConfigurationElement = authoringSection.GetChildElement("fileSystem")
      fileSystemElement("allowHiddenFiles") = True
      fileSystemElement("hideChildVirtualDirectories") = True

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

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

var authoringSection = adminManager.GetAdminSection("system.webServer/webdav/authoring", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var fileSystemElement = authoringSection.ChildElements.Item("fileSystem");
fileSystemElement.Properties.Item("allowHiddenFiles").Value = true;
fileSystemElement.Properties.Item("hideChildVirtualDirectories").Value = true;

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set authoringSection = adminManager.GetAdminSection("system.webServer/webdav/authoring", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set fileSystemElement = authoringSection.ChildElements.Item("fileSystem")
fileSystemElement.Properties.Item("allowHiddenFiles").Value = True
fileSystemElement.Properties.Item("hideChildVirtualDirectories").Value = True

adminManager.CommitChanges()