共用方式為


伺服器端包含 < serverSideInclude>

概觀

元素 <serverSideInclude> 會指定 Internet Information Services (IIS) 7 是否停用伺服器端包含 (SSI) #exec 指示詞。

具體而言, <serverSideInclude> 元素包含單一屬性: ssiExecDisable。 將 ssiExecDisable 屬性設定為 true 將會停用 IIS 7 的 SSI #exec 指示詞,藉此防止 SSI 檔案在伺服器上執行程式、腳本或殼層命令。

相容性

版本 備註
IIS 10.0 <serverSideInclude> IIS 10.0 中未修改專案。
IIS 8.5 <serverSideInclude> 在 IIS 8.5 中修改專案。
IIS 8.0 在 IIS 8.0 中未修改專案 <serverSideInclude>
IIS 7.5 <serverSideInclude> 在 IIS 7.5 中修改專案。
IIS 7.0 專案 <serverSideInclude> 是在 IIS 7.0 中引進的。
IIS 6.0 元素 <serverSideInclude> 會取代 IIS 6.0 SSIExecDisable Metabase 屬性。

注意

IIS 7 中 SSI 檔案停用 #exec 的 cmd 指示詞;您只能使用 cgi 指示詞。 例如,您可以使用下列命令搭配 cgi 指示詞:

<!--#exec cgi="/HITCOUNTER.EXE"-->

但您無法再使用下列命令搭配 cmd 指示詞:

<!--#exec cmd="dir /b"-->

如果您嘗試在 IIS 7 上的 SSI 檔案中使用 Cmd 指示詞,您會收到下列錯誤訊息:

CMD 選項未針對#EXEC呼叫啟用

安裝程式

專案 <serverSideInclude> 無法在 IIS 7 和更新版本的預設安裝上使用。 若要安裝,請使用下列步驟。

Windows Server 2012 或 Windows Server 2012 R2

  1. 在工作列上,按一下 [伺服器管理員]
  2. 伺服器管理員中,按一下 [管理]功能表,然後按一下 [新增角色和功能]。
  3. 在 [ 新增角色和功能 精靈] 中,按 [下一步]。 選取安裝類型,然後按 [ 下一步]。 選取目的地伺服器,然後按 [ 下一步]。
  4. 在 [ 伺服器角色] 頁面上,依序展開 [Web 服務器] ([IIS) ]、[ Web 服務器]、[ 應用程式開發],然後選取 [ 伺服器端包含]。 按一下 [下一步] 。
    伺服器端的螢幕擷取畫面:在展開的 Web 服務器 (I S) 和網頁伺服器清單中選取 [應用程式開發]。 .
  5. 在 [選取功能] 頁面上,按一下 [下一步]
  6. 在 [確認安裝選項] 頁面上,按一下 [安裝]
  7. 在 [結果] 頁面上,按一下 [關閉]

Windows 8 或Windows 8.1

  1. 在 [開始] 畫面上,將指標全部移至左下角,以滑鼠右鍵按一下 [開始] 按鈕,然後按一下[主控台]。
  2. 主控台中,按一下 [程式和功能],然後按一下 [開啟或關閉 Windows 功能]。
  3. 序展開 [Internet Information Services]、[ 萬維網服務]、[ 應用程式開發功能],然後選取 [ 伺服器端包含]。
    在 Windows 8 介面中選取 [伺服器端包含] 的螢幕擷取畫面。
  4. 按一下 [確定]。
  5. 按一下 [關閉] 。

Windows Server 2008 或 Windows Server 2008 R2

  1. 在工作列上,按一下 [開始],指向 [系統管理工具],然後按一下[伺服器管理員]。
  2. [伺服器管理員階層] 窗格中,展開 [角色],然後按一下 [Web 服務器] (IIS)
  3. [Web 服務器 (IIS) ] 窗格中,捲動至 [ 角色服務 ] 區段,然後按一下 [ 新增角色服務]。
  4. 在 [新增角色服務精靈] 的 [選取角色服務] 頁面上,選取[伺服器端包含],然後按 [下一步]。
    [伺服器端包含] 的螢幕擷取畫面,在展開的 Web 服務器清單中選取 [應用程式開發]。
  5. 在 [確認安裝選項] 頁面上,按一下 [安裝]
  6. 在 [結果] 頁面上,按一下 [關閉]

Windows Vista 或 Windows 7

  1. 在工作列上,按一下 [開始],然後按一下[主控台]。
  2. 主控台中,按一下 [程式和功能],然後按一下 [開啟或關閉 Windows 功能]。
  3. 展開 [Internet Information Services],然後選取 [ 伺服器端包含],然後按一下 [ 確定]。
    [伺服器端包含] 在 Windows Vista 或 Windows 7 介面中選取的螢幕擷取畫面。

作法

沒有用於設定 <serverSideInclude> IIS 7 元素的使用者介面。 For examples of how to configure the <serverSideInclude> element programmatically, see the Code Samples section of this document.

組態

屬性

屬性 描述
ssiExecDisable 選擇性的 Boolean 屬性。

指定是否啟用 SSI #exec 指示詞, (false) 或停用 (true) 。 停用時,指示詞無法在伺服器上執行程式、腳本或殼層命令。

預設值是 false

子元素

無。

組態範例

下列組態範例會停用預設網站中 SSI 檔案的 #exec 命令。

<location path="Default Web Site">
   <system.webServer>
      <serverSideInclude ssiExecDisable="true" />
   </system.webServer>
</location>

範例程式碼

下列程式碼範例會停用預設網站中 SSI 檔案的 #exec 命令。

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/serverSideInclude /ssiExecDisable:"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 serverSideIncludeSection = config.GetSection("system.webServer/serverSideInclude", "Default Web Site");
         serverSideIncludeSection["ssiExecDisable"] = 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 serverSideIncludeSection As ConfigurationSection = config.GetSection("system.webServer/serverSideInclude", "Default Web Site")
      serverSideIncludeSection("ssiExecDisable") = True

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

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

var serverSideIncludeSection = adminManager.GetAdminSection("system.webServer/serverSideInclude", "MACHINE/WEBROOT/APPHOST/Default Web Site");
serverSideIncludeSection.Properties.Item("ssiExecDisable").Value = true;

adminManager.CommitChanges();

VBScript

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

Set serverSideIncludeSection = adminManager.GetAdminSection("system.webServer/serverSideInclude", "MACHINE/WEBROOT/APPHOST/Default Web Site")
serverSideIncludeSection.Properties.Item("ssiExecDisable").Value = True

adminManager.CommitChanges()