Hinzufügen der Initialisierungsseite <add>
Übersicht
Das <add>
-Element unter dem <applicationInitialization>
-Element gibt die Anwendung an, die beim Neustart der Anwendung initialisiert werden soll. Um den Anwendungsinitialisierungsprozess auszuführen, sendet IIS eine Fakeanforderung an die Anwendung, um die Initialisierung auszulösen. Mehrere Anwendungs-URLs können mithilfe mehrerer <add>
-Tags angegeben werden. Diese Anwendungen werden nicht für eine anfordernde Person bereitgestellt. Die Seite, die durch das remapManagedRequestsTo-Attribut im <applicationInitialization>
-Element angegeben wird, wird für den Kunden bereitgestellt.
Kompatibilität
Version | Hinweise |
---|---|
IIS 10.0 | Das <add> -Element wurde in IIS 10.0 nicht geändert. |
IIS 8.5 | Das <add> -Element wurde in IIS 8.5 nicht geändert. |
IIS 8.0 | Das <add> -Element wurde in IIS 8.0 eingeführt. |
IIS 7.5 | N/V |
IIS 7.0 | N/V |
IIS 6.0 | N/V |
Setup
Um die Anwendungsinitialisierung auf Ihrem Webserver zu unterstützen, müssen Sie die Anwendungsinitialisierungsrolle oder das entsprechende Feature installieren.
Windows Server 2012 oder Windows Server 2012 R2
- Klicken Sie auf der Taskleiste auf Server-Manager.
- Klicken Sie im Server-Manager auf Verwalten und dann auf Rollen und Features hinzufügen.
- Klicken Sie im Assistenten zum Hinzufügen von Rollen und Features auf Weiter. Wählen Sie den Installationstyp aus, und klicken Sie auf Weiter. Wählen Sie den Zielserver aus, und klicken Sie auf Weiter.
- Erweitern Sie auf der Seite Serverrollen die Option Webserver (IIS), erweitern Sie Webserver, erweitern Sie Anwendungsentwicklung, und wählen Sie dann Anwendungsinitialisierung aus. Klicken Sie auf Weiter.
- Klicken Sie auf der Seite Features auswählen auf Weiter.
- Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
- Klicken Sie auf der Seite Ergebnisse auf Schließen.
Windows 8 oder Windows 8.1
- Bewegen Sie auf dem Startbildschirm den Mauszeiger ganz nach links unten, klicken Sie mit der rechten Maustaste auf die Schaltfläche Start, und klicken Sie dann auf Systemsteuerung.
- Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.
- Erweitern Sie Internetinformationsdienste > WWW-Dienste > Anwendungsentwicklungsfeatures, und wählen Sie anschließend Anwendungsinitialisierung aus.
- Klicken Sie auf OK.
- Klicken Sie auf Schließen.
Gewusst wie
Konfigurieren der Anwendungsinitialisierung
Öffnen Sie Internetinformationsdienste-Manager (IIS-Manager):
Vorgehensweise unter Windows Server 2012 oder einer höheren Version:
- Klicken Sie auf der Taskleiste auf Server-Manager > Tools > Internetinformationsdienste-Manager (IIS-Manager).
Vorgehensweise unter Windows 8 oder einer höheren Version:
- Halten Sie die WINDOWS-TASTE gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
- Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
Wählen Sie im Bereich Verbindungen den Server aus, oder erweitern Sie den Server, erweitern Sie Sites, und wählen Sie eine Site aus.
Doppelklicken Sie im Bereich Start auf das Feature Konfigurations-Editor.
Falls Sie eine Site ausgewählt haben, wählen Sie im Textfeld Von die Option <Sitename> Web.config und anschließend im Textfeld Abschnitt die Option system.webServer/applicationInitialization aus.
Falls Sie den Server ausgewählt haben, wählen Sie im Textfeld Abschnitt die Option system.webServer/applicationInitialization aus.
Um den Namen einer statischen Datei anzugeben, die während der Initialisierung zurückgegeben werden soll, legen Sie remapManagedRequestsTo auf den Namen der Datei fest.
Wenn Sie keine verwalteten Module laden möchten, legen Sie skipManagedModules auf true fest.
Um anzugeben, dass der Initialisierungsprozess bei jedem Neustart einer Anwendung automatisch initiiert wird, legen Sie doAppInitAfterRestart auf true fest.
Wenn Sie die Anwendungen angeben möchten, die beim Neustart der Anwendung initialisiert werden sollen, klicken Sie auf die Zeile (Collection) und anschließend auf die Auslassungspunkte.
Klicken Sie im Sammlungs-Editor auf Hinzufügen > hostName, und legen Sie dann „hostName“ auf den Namen des Hosts fest, um eine zu initialisierende Anwendung hinzuzufügen. Klicken Sie auf initializationPage, und legen Sie diese Option auf eine URL für die Anwendung fest. Schließen Sie das Dialogfeld.
Klicken Sie im Bereich Aktionen auf Übernehmen.
Konfiguration
Das <add>
-Element des <applicationInitialization>
-Elements wird auf der Server-, Site- oder Anwendungsebene konfiguriert.
Attribute
Attribut | Beschreibung |
---|---|
initializationPage |
Erforderliches Zeichenfolgenattribut. Gibt die URL einer Anwendung an, die beim Neustart der Anwendung initialisiert werden soll. Der Standardwert ist "" . |
hostName |
Optionales Zeichenfolgeattribut. Ein Hostname, der mit der im initializationPage-Attribut bereitgestellten Anwendungs-URL verwendet werden soll. Der Standardwert ist "" . |
Untergeordnete Elemente
Keine.
Konfigurationsbeispiel
Das folgende Beispiel zeigt die Konfiguration der Anwendungsinitialisierung:
<system.webServer>
<applicationInitialization
doAppInitAfterRestart="true"
skipManagedModules="true"
remapManagedRequestsTo="filename.htm"/>
<add initializationPage="/default.aspx" hostName="myhost"/>
</applicationInitialization>
</system.webServer>
Beispielcode
In den folgenden Beispielen wird <applicationInitialization> für eine Site konfiguriert.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/applicationInitialization /remapManagedRequestsTo:"HelloJoe.htm" /skipManagedModules:"True" /doAppInitAfterRestart:"True" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/applicationInitialization /+"[initializationPage='JoesSite.htm',hostName='JoesHost']" /commit:apphost
Hinweis
Legen Sie den commit-Parameter auf apphost
fest, wenn Sie „AppCmd.exe“ verwenden, um diese Einstellungen zu konfigurieren. Dadurch werden die Konfigurationseinstellungen auf den entsprechenden Speicherortabschnitt in der Datei „ApplicationHost.config“ festgelegt.
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 applicationInitializationSection = config.GetSection("system.webServer/applicationInitialization", "Default Web Site");
applicationInitializationSection["remapManagedRequestsTo"] = @"HelloJoe.htm";
applicationInitializationSection["skipManagedModules"] = true;
applicationInitializationSection["doAppInitAfterRestart"] = true;
ConfigurationElementCollection applicationInitializationCollection = applicationInitializationSection.GetCollection();
ConfigurationElement addElement = applicationInitializationCollection.CreateElement("add");
addElement["initializationPage"] = @"JoesSite.htm";
addElement["hostName"] = @"JoesHost";
applicationInitializationCollection.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 applicationInitializationSection As ConfigurationSection = config.GetSection("system.webServer/applicationInitialization", "Default Web Site")
applicationInitializationSection("remapManagedRequestsTo") = "HelloJoe.htm"
applicationInitializationSection("skipManagedModules") = true
applicationInitializationSection("doAppInitAfterRestart") = true
Dim applicationInitializationCollection As ConfigurationElementCollection = applicationInitializationSection.GetCollection
Dim addElement As ConfigurationElement = applicationInitializationCollection.CreateElement("add")
addElement("initializationPage") = "JoesSite.htm"
addElement("hostName") = "JoesHost"
applicationInitializationCollection.Add(addElement)
serverManager.CommitChanges
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var applicationInitializationSection = adminManager.GetAdminSection("system.webServer/applicationInitialization", "MACHINE/WEBROOT/APPHOST/Default Web Site");
applicationInitializationSection.Properties.Item("remapManagedRequestsTo").Value = "HelloJoe.htm";
applicationInitializationSection.Properties.Item("skipManagedModules").Value = true;
applicationInitializationSection.Properties.Item("doAppInitAfterRestart").Value = true;
var applicationInitializationCollection = applicationInitializationSection.Collection;
var addElement = applicationInitializationCollection.CreateNewElement("add");
addElement.Properties.Item("initializationPage").Value = "JoesSite.htm";
addElement.Properties.Item("hostName").Value = "JoesHost";
applicationInitializationCollection.AddElement(addElement);
adminManager.CommitChanges();
VBScript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set applicationInitializationSection = adminManager.GetAdminSection("system.webServer/applicationInitialization", "MACHINE/WEBROOT/APPHOST/Default Web Site")
applicationInitializationSection.Properties.Item("remapManagedRequestsTo").Value = "HelloJoe.htm"
applicationInitializationSection.Properties.Item("skipManagedModules").Value = true
applicationInitializationSection.Properties.Item("doAppInitAfterRestart").Value = true
Set applicationInitializationCollection = applicationInitializationSection.Collection
Set addElement = applicationInitializationCollection.CreateNewElement("add")
addElement.Properties.Item("initializationPage").Value = "JoesSite.htm"
addElement.Properties.Item("hostName").Value = "JoesHost"
applicationInitializationCollection.AddElement(addElement)
adminManager.CommitChanges()
PowerShell
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site' -filter "system.webServer/applicationInitialization" -name "remapManagedRequestsTo" -value "HelloJoe.htm"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site' -filter "system.webServer/applicationInitialization" -name "skipManagedModules" -value "True"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site' -filter "system.webServer/applicationInitialization" -name "doAppInitAfterRestart" -value "True"
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site' -filter "system.webServer/applicationInitialization" -name "." -value @{initializationPage='JoesSite.htm';hostName='JoesHost'}