共用方式為


服務自動啟動提供者 < 服務AutoStartProviders>

概觀

元素 <serviceAutoStartProviders> 會指定 Managed 元件的集合,Windows Process Activation Service (WAS) 會在應用程式集區的 屬性設定為 AlwaysRunningstartMode 自動載入。 此集合可讓開發人員指定在服務任何 HTTP 要求之前執行初始化工作的元件。 例如,應用程式開發人員可能會想要在 IIS 開始要求處理之前,為應用程式建立初始資料庫連結;這可讓應用程式針對需要往返資料庫的初始要求執行更快速。

如需如何設定應用程式集區自動啟動的詳細資訊,請參閱 <applicationPools> 主題。

注意

這個元素是在 IIS 7.5 中引進的。

相容性

版本 備註
IIS 10.0 未在 IIS 10.0 中修改專案 <serviceAutoStartProviders>
IIS 8.5 未在 IIS 8.5 中修改專案 <serviceAutoStartProviders>
IIS 8.0 未在 IIS 8.0 中修改專案 <serviceAutoStartProviders>
IIS 7.5 元素 <serviceAutoStartProviders> 是在 IIS 7.5 中引進。
IIS 7.0 N/A
IIS 6.0 N/A

安裝程式

元素 <serviceAutoStartProviders> 包含在 IIS 7.5 的預設安裝中。

作法

如何設定服務自動啟動提供者

注意

沒有可讓您設定 <serviceAutoStartProviders> 專案的直接使用者介面,因此下列步驟會使用 IIS 組態編輯器功能。

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

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

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

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

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

      • 在工作列上,按一下 [開始],然後按一下[主控台]。
      • 按兩下 [系統管理工具],然後按兩下 [ Internet Information Services] (IIS) Manager
  2. 在 [ 連線] 窗格中,按一下伺服器名稱。

  3. 在 [ 首頁] 窗格中,按兩下 [ 組態編輯器] 功能。
    [伺服器首頁] 窗格的螢幕擷取畫面,其中已選取 [組態編輯器]。

  4. 在 [ 區段 ] 下拉式功能表中,展開 system.applicationHost,然後按一下 [serviceAutoStartProviders]。
    [設定編輯器] 頁面的螢幕擷取畫面,其中顯示已展開的系統點應用程式主機索引標籤。

  5. 按一下 [ (集合) ] 欄位右側的省略號 (...)

  6. 在 [動作] 窗格中,按一下 [新增]

  7. 當 [集合編輯器] 對話方塊出現時:

    • 在 [名稱] 欄位中輸入自動啟動提供者 的名稱 。 例如:
      「MyAutostartProvider」
    • [類型 ] 欄位中輸入自動啟動元件的 Managed 類型。 例如:
      「MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73」
    • 關閉 [集合編輯器] 對話方塊。
      [集合編輯器] 對話方塊的螢幕擷取畫面,其中顯示自動啟動提供者名稱和 Managed 類型的欄位。
  8. 在 [動作] 窗格中,按一下 [套用]

注意

本節包含如何使用 IIS 組態編輯器修改 IIS 設定的相關資訊。 編輯 IIS 組態設定不正確可能會嚴重損壞 IIS 安裝。 因此,請務必小心遵循下列步驟。 為了增加安全性,您應該先備份 IIS 組態設定,再使用 IIS 組態編輯器進行任何修改。 如需如何備份 IIS 組態設定以及如何使用 IIS 組態編輯器的詳細資訊,請參閱下列主題:

組態

元素 <serviceAutoStartProviders> 是在 ApplicationHost.config 檔案中的全域層級進行設定。

屬性

無。

子元素

元素 描述
add 選擇性項目。

將提供者加入至自動啟動提供者的集合。
clear 選擇性項目。

清除自動啟動提供者的集合。
remove 選擇性項目。

從自動啟動提供者的集合中移除提供者。

組態範例

下列範例會顯示將 <serviceAutoStartProviders> 自訂自動啟動提供者新增至集合的專案。

<serviceAutoStartProviders>
   <add name="MyAutostartProvider" type="MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73" />
</serviceAutoStartProviders>

範例程式碼

下列範例會將範例提供者新增至自動啟動提供者的集合。

AppCmd.exe

appcmd.exe set config -section:system.applicationHost/serviceAutoStartProviders /+"[name='MyAutostartProvider',type='MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73']" /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 serviceAutoStartProvidersSection = config.GetSection("system.applicationHost/serviceAutoStartProviders");
         ConfigurationElementCollection serviceAutoStartProvidersCollection = serviceAutoStartProvidersSection.GetCollection();

         ConfigurationElement addElement = serviceAutoStartProvidersCollection.CreateElement("add");
         addElement["name"] = @"MyAutostartProvider";
         addElement["type"] = @"MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73";
         serviceAutoStartProvidersCollection.Add(addElement);

         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 serviceAutoStartProvidersSection As ConfigurationSection = config.GetSection("system.applicationHost/serviceAutoStartProviders")
      Dim serviceAutoStartProvidersCollection As ConfigurationElementCollection = serviceAutoStartProvidersSection.GetCollection

      Dim addElement As ConfigurationElement = serviceAutoStartProvidersCollection.CreateElement("add")
      addElement("name") = "MyAutostartProvider"
      addElement("type") = "MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"
      serviceAutoStartProvidersCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

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

var serviceAutoStartProvidersSection = adminManager.GetAdminSection("system.applicationHost/serviceAutoStartProviders", "MACHINE/WEBROOT/APPHOST");
var serviceAutoStartProvidersCollection = serviceAutoStartProvidersSection.Collection;

var addElement = serviceAutoStartProvidersCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "MyAutostartProvider";
addElement.Properties.Item("type").Value = "MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73";
serviceAutoStartProvidersCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

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

Set serviceAutoStartProvidersSection = adminManager.GetAdminSection("system.applicationHost/serviceAutoStartProviders", "MACHINE/WEBROOT/APPHOST")
Set serviceAutoStartProvidersCollection = serviceAutoStartProvidersSection.Collection

Set addElement = serviceAutoStartProvidersCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "MyAutostartProvider"
addElement.Properties.Item("type").Value = "MyAutostartProvider, MyAutostartProvider, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"
serviceAutoStartProvidersCollection.AddElement(addElement)

adminManager.CommitChanges()