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

  1. Klicken Sie auf der Taskleiste auf Server-Manager.
  2. Klicken Sie im Server-Manager auf Verwalten und dann auf Rollen und Features hinzufügen.
  3. 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.
  4. 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.
    Screenshot of Web Server and Application Development node expanded in Server Roles page with Application Initialization selected.
  5. Klicken Sie auf der Seite Features auswählen auf Weiter.
  6. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
  7. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows 8 oder Windows 8.1

  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.
  2. Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.
  3. Erweitern Sie Internetinformationsdienste > WWW-Dienste > Anwendungsentwicklungsfeatures, und wählen Sie anschließend Anwendungsinitialisierung aus.
    Screenshot shows Application Development Features node expanded and Application Initialization selected.
  4. Klicken Sie auf OK.
  5. Klicken Sie auf Schließen.

Gewusst wie

Konfigurieren der Anwendungsinitialisierung

  1. Ö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).
  2. Wählen Sie im Bereich Verbindungen den Server aus, oder erweitern Sie den Server, erweitern Sie Sites, und wählen Sie eine Site aus.

  3. Doppelklicken Sie im Bereich Start auf das Feature Konfigurations-Editor.

  4. 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.

  5. Falls Sie den Server ausgewählt haben, wählen Sie im Textfeld Abschnitt die Option system.webServer/applicationInitialization aus.

    Screenshot of Configuration Editor feature showing Collection line selected and skip Managed Modules option set to true.

  6. 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.

  7. Wenn Sie keine verwalteten Module laden möchten, legen Sie skipManagedModules auf true fest.

  8. Um anzugeben, dass der Initialisierungsprozess bei jedem Neustart einer Anwendung automatisch initiiert wird, legen Sie doAppInitAfterRestart auf true fest.

  9. 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.

  10. 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.

    Screenshot of Collection Editor dialog box showing Add option in Actions pane and host Name highlighted in Properties section.

  11. 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'}