使用 IIS 管理員來設定自動啟動功能
此主題包含啟用應用程式的自動啟動以及使用 IIS 管理員啟用服務的程序。此外,也包含為網站啟用 net.pipe 繫結以及為應用程式啟用 net.pipe 通訊協定的程序。
啟用應用程式的自動啟動
依序按一下 [開始]、[所有程式] 及 [Windows Server AppFabric],然後按一下 [Internet Information Services (IIS) 管理員],以開啟「IIS 管理員」。
在 [連線] 窗格中,開啟包含應用程式的伺服器與網站,然後選取應用程式。
在 [動作] 窗格中,按一下 [動作] 窗格中 [管理 WCF 與 WF 服務] 標題下的 [設定];或在應用程式上按一下滑鼠右鍵,指向 [管理 WCF 與 WF 服務],然後按一下 [設定]。
在 [設定應用程式的 WCF 與 WF] 對話方塊中,按一下 [自動啟動]。
重要
只有在 Windows 7 或 Windows Server 2008 R2 以上的作業系統版本才能使用自動啟動組態功能。若您的系統並非安裝上述作業系統,則必須先升級作業系統,才能設定自動啟動功能。
在 [自動啟動] 對話方塊中,按一下 [已啟用] 以啟用應用程式中所有服務的自動啟動;按一下 [自訂] 以個別啟用應用程式中每個服務的自動啟動;或按一下 [已停用] 來確保應用程式中的所有服務都不會自動啟動。
若應用程式的應用程式集區並非設定為 AlwaysRunning,則會出現顯示下列訊息的快顯對話方塊:「此應用程式/服務的應用程式集區需要將其 startMode 設定為 AlwaysRunning,應用程式/服務才能順利自動啟動。是否要在套用變更時設定應用程式集區的 startMode?」按一下 [是] 將應用程式集區的 startMode 設定為 AlwaysRunning,然後按一下 [確定]。
只有在您將應用程式所用的應用程式集區的 startMode 設為 AlwaysRunning 時,才能使用應用程式的自動啟動功能。按一下此對話方塊上的 [確定],會將應用程式所用的應用程式集區的 startMode 值設為 AlwaysRunning。您也可以使用 IIS 組態編輯器來設定此屬性。請注意,將應用程式集區的 startMode 設為 AlwaysRunning,會重新啟動應用程式集區中的所有應用程式。
按一下 [確定]。
應用程式的自動啟動設定不是定義於應用程式的 Web.config 檔案中,而是定義於伺服器的 ApplicationHost.config 檔案中。您必須在應用程式等級顯示的設定對話方塊中設定本機應用程式的自動啟動,但是設定值是在 ApplicationHost.config 檔案中。下列是範例組態:
<application path="/MyWorkflowService" applicationPool="MyWorkflowServiceAppPool" enabledProtocols="http,net.pipe" serviceAutoStartEnabled="true" serviceAutoStartProvider="Service" serviceAutoStartMode="All">
啟用應用程式中所有服務的自動啟動,會將 ApplicationHost.config 檔案中應用程式的 serviceAutoStartMode 屬性值設為 "all"。將模式設為 [自訂],會將 serviceAutoStartMode 屬性值設為 "custom"。若應用程式已在執行 (例如,已啟用通訊協定),不論執行上述哪一個動作,都會將 serviceAutoStartEnabled 新增至 ApplicationHost.config 檔案並將其值設定為 “true”。若應用程式不在執行狀態,則 serviceAutoStartEnabled 會被設定為 “false”(因此不會意外啟動刻意停止的應用程式)。
重要
應用程式集區的 autoStart 屬性及 startMode 屬性不同。startMode 屬性就是 Microsoft AppFabric 1.1 for Windows Server 自動啟動功能所使用的屬性。[編輯應用程式集區] 對話方塊中的 [立即啟動應用程式集區] 設定或應用程式集區之 [進階設定] 對話方塊上的 [自動啟動] 設定,會設定 autoStart 屬性,而不是 startMode 屬性。
警告
請確定應用程式集區設定成使用整合式 Managed 管線模式,且該模式使用 .NET Framework 4。
啟用服務的自動啟動
依序按一下 [開始]、[所有程式] 及 [Windows Server AppFabric],然後按一下 [Internet Information Services (IIS) 管理員],以開啟「IIS 管理員」。
在 [連線] 窗格中,開啟包含應用程式的伺服器與網站,然後選取應用程式。
視需要設定應用程式的自動啟動設定。若要啟用服務的自動啟動,必須將自動啟動模式設定為 [自訂],並將應用程式集區的 startMode 設定為 AlwaysRunning。如需相關資訊,請參閱本主題中的<啟用應用程式的自動啟動>。
在 [功能檢視] 中,按兩下 [服務] 圖示。
選取要為其啟用自動啟動功能的服務,然後按一下 [動作] 窗格中的 [設定];或在應用程式上按一下滑鼠右鍵,然後按一下內容功能表中的 [設定]。
在 [設定服務] 對話方塊中,按一下 [自動啟動]。
在 [自動啟動] 對話方塊中,按一下 [啟用] 以啟用服務的自動啟動。啟用服務的自動啟動,會在應用程式 Web.config 檔案中,將 serviceAddress 行新增至服務的 serviceAutoStart 屬性。下列是範例組態:
<microsoft.applicationServer> <hosting> <serviceAutoStart> <add relativeVirtualPath="Service1.xamlx" /> </serviceAutoStart> </hosting> </microsoft.applicationServer>
若服務屬於自動啟動模式設定為 [已停用] 的應用程式,則會清除 [啟用] 核取方塊,而且該核取方塊將無法使用。若應用程式的自動啟動模式設定為 [啟用],則會選取 [啟用] 核取方塊,而且該核取方塊將無法使用。您必須先將應用程式的自動啟動模式設定為 [自訂],才能啟用服務的自動啟動。若應用程式的自動啟動為已啟用或已停用,則應用程式中所有服務的自動啟動設定將會繼承應用程式的自動啟動設定。若要設定應用程式的自動啟動,請參閱本主題稍早的<啟用應用程式的自動啟動>一節。
按一下 [確定]。
注意
若您在網站的根目錄 (而非虛擬目錄) 新增服務,則服務將與預設應用程式關聯,而非自訂應用程式。當服務與預設應用程式關聯時,您將無法在「IIS 管理員」延伸模組中設定服務的自動啟動,原因是預設應用程式的自動啟動模式設定為 [已停用] 且無法變更。
使用 IIS 管理員設定應用程式集區的 startMode 屬性
在 [IIS 管理員] 中,按一下 [連線] 窗格中的電腦名稱。
如果 [功能檢視] 未作用,請切換至 [功能檢視]。
在 [功能檢視] 的 [管理] 區段中,按兩下 [組態編輯器]。
按一下 [區段] 欄位的 [向下鍵]、展開 [system.applicationhost],然後按一下 [應用程式集區]。
按一下 [(集合)],然後按一下可顯示計數之欄位旁邊的省略符號 (…)。
在 [集合編輯器] 中,選取想要設定其 startMode 屬性的應用程式集區。
在底端的 [內容] 視窗中,將 [startMode] 屬性值設為 [AlwaysRunning]。
在網站等級啟用 net.pipe 繫結
-
注意
Microsoft AppFabric 1.1 for Windows Server 會自動將「服務管理服務」(一種 WCF 服務) 新增至已啟用 serviceManagement 屬性的所有應用程式。此屬性預設為啟用。此服務需要針對網站啟用 net.pipe 繫結,並針對應用程式啟用 net.pipe 通訊協定。如果尚未啟用這些設定,自動啟動功能會無法啟動此服務,而且您會在事件記錄檔中看見錯誤訊息。如需有關此服務的詳細資訊,此參閱Service 管理服務。
在「IIS 管理員」中的網站名稱上按一下滑鼠右鍵,然後按一下 [編輯繫結] 以啟動 [站台繫結] 對話方塊。
若 [站台繫結] 對話方塊中未顯示 net.pipe 繫結,請按一下 [新增] 以啟動 [新增站台繫結] 對話方塊。
在 [新增站台繫結] 對話方塊中,在 [類型] 欄位中選取 [net.pipe],然後在 [繫結] 欄位中輸入 *。
按一下 [確定] 以關閉 [新增站台繫結] 對話方塊,然後按一下 [關閉] 以關閉 [站台繫結] 對話方塊。
為應用程式啟用 net.pipe 通訊協定
在「IIS 管理員」中,在包含服務的應用程式名稱上按一下滑鼠右鍵。
指向 [管理應用程式],然後按一下 [進階設定]。
在 [進階設定] 對話方塊中,新增 , (逗號) 字元與 net.pipe 至 [已啟用的通訊協定] 欄位。
按一下 [確定] 以關閉 [進階設定] 對話方塊,然後按一下 [關閉] 以關閉 [站台繫結] 對話方塊。
注意
若要啟用或停用自動啟動,必須符合下列條件:
您必須使用 Windows 7 或 Windows Server 2008 R2 作業系統。在其他作業系統中無法使用 [自動啟動] 索引標籤,例如 Windows Vista 或 R2 之前的 Windows Server 2008。
若要使用「IIS 管理員」從遠端設定應用程式的自動啟動,您必須在伺服器等級連線,而非在網站或應用程式等級連線。只有這樣才能將設定套用到伺服器等級的 ApplicationHost.config 檔案,而這是應用程式所需的 (請注意,您可以從遠端連線至任何等級來設定服務的自動啟動設定)。
若在應用程式等級啟用自動啟動,只有在該應用程式所使用之應用程式集區的 startMode 設定為 AlwaysRunning 時,該應用程式的自動啟動功能才會有作用。
只有包含服務之應用程式的自動啟動設定已啟用,而且應用程式模式設定為自訂時,您才能在服務等級設定自動啟動。若應用程式模式設定為全部 (應用程式的自動啟動已啟用),則應用程式內所有服務的自動啟動設定將會繼承應用程式的自動啟動設定。若啟用服務的自動啟動,而對應之應用程式的 startMode 並非設定為 AlwaysRunning,將會顯示警告,指出應用程式集區的 startMode 必須設定為 AlwaysRunning。
若您在網站的根目錄 (而非虛擬目錄) 新增服務,則服務將與預設應用程式關聯,而非自訂應用程式。當服務與預設應用程式關聯時,您將無法在「IIS 管理員」延伸模組中設定服務的自動啟動,原因是預設應用程式的自動啟動模式設定為 [已停用] 且無法變更。
在「IIS 管理員」中,網站的 [進階設定] 對話方塊包含名為 [自動啟動] 的屬性。這個屬性必須設定為 [True],才能讓關聯的應用程式集區啟動。如果設定為 [False],應用程式集區將永遠不會啟動,不管應用程式集區的自動啟動是否啟用。但是,若 [自動啟動] 設定為 [True],則應用程式集區的自動啟動可以是啟用 (設定為 [AlwaysRunning]) 或停用。將 [自動啟動] 設定為 [True] 無法保證應用程式集區一定會自動啟動。為確保它會自動啟動,您必須啟用應用程式集區的自動啟動,並確定 [自動啟動] 設定為 [True]。
Microsoft AppFabric 1.1 for Windows Server 會自動將「服務管理服務」(一種 WCF 服務) 新增至已啟用 serviceManagement 屬性的所有應用程式。此屬性預設為啟用。此服務需要針對網站啟用 net.pipe 繫結,並針對應用程式啟用 net.pipe 通訊協定。如果尚未啟用這些設定,自動啟動功能會無法啟動此服務,而且您會在事件記錄檔中看見錯誤訊息。如需有關此服務的詳細資訊,此參閱Service 管理服務。
2012-03-05