服務自動啟動提供者 < 服務AutoStartProviders>
概觀
元素 <serviceAutoStartProviders>
會指定 Managed 元件的集合,Windows Process Activation Service (WAS) 會在應用程式集區的 屬性設定為 AlwaysRunning
時 startMode
自動載入。 此集合可讓開發人員指定在服務任何 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 組態編輯器功能。
開啟 [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。
在 [ 連線] 窗格中,按一下伺服器名稱。
在 [ 區段 ] 下拉式功能表中,展開 system.applicationHost,然後按一下 [serviceAutoStartProviders]。
按一下 [ (集合) ] 欄位右側的省略號 (...) 。
在 [動作] 窗格中,按一下 [新增]。
當 [集合編輯器] 對話方塊出現時:
在 [動作] 窗格中,按一下 [套用]。
注意
本節包含如何使用 IIS 組態編輯器修改 IIS 設定的相關資訊。 編輯 IIS 組態設定不正確可能會嚴重損壞 IIS 安裝。 因此,請務必小心遵循下列步驟。 為了增加安全性,您應該先備份 IIS 組態設定,再使用 IIS 組態編輯器進行任何修改。 如需如何備份 IIS 組態設定以及如何使用 IIS 組態編輯器的詳細資訊,請參閱下列主題:
- 如何備份 IIS 7 組態
https://technet.microsoft.com/library/dd819406.aspx - 組態編輯器頁面
https://technet.microsoft.com/library/dd569081.aspx
組態
元素 <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()