Freigeben über


Feature für den automatischen Start

Das automatischer Start-Feature von AppFabric setzt auf das automatischer Start-Feature von IIS 7.5 (Internetinformationsdienste) auf, welches zum Lieferumfang von Windows 7 und Windows Server 2008 R2 gehört. In IIS können Sie einen Anwendungspool und alle oder einige hierin befindliche Anwendungen so konfigurieren, dass sie automatisch zusammen mit dem IIS-Dienst gestartet werden. Die Funktion für den automatischen Start von AppFabric erweitert diese Funktionalität, sodass Sie alle oder einige der Dienste einer Anwendung so konfigurieren können, dass sie automatisch mit der Anwendung gestartet werden.

Vorteile der Funktion für den automatischen Start

Wenn Sie das automatischer Start-Feature für einen Dienst aktivieren, wird der zugehörige Dienst unmittelbar zusammen mit der Anwendung gestartet, also bevor er die erste WCF-Meldung vom Client erhält. Der Dienst kann die erste Meldung daher schnell verarbeiten, da er bereits initialisiert ist. Nehmen wir beispielsweise einmal an, ein Dienst muss die Verbindung zu einer Datenbank herstellen, um Hunderte von Datenzeilen zu lesen, damit er eine zu Anfang erstellte .NET Framework-Cachedatenstruktur füllen kann. Der Initialisierungsprozess nimmt viel Zeit in Anspruch, bevor der Dienst mit dem eigentlichen Vorgang beginnen kann. Wenn Sie in diesem Fall das automatischer Start-Feature verwenden, wird der Dienst initialisiert, bevor der erste Aufruf eingeht.

Die HTTP.SYS-Komponente von IIS verarbeitet HTTP-Anforderungen, und Windows-Prozessaktivierungsdienst (WAS) verarbeitet TCP-, Named Pipes- und MSMQ-Anforderungen unter Verwendung von benutzerdefinierten WCF-Listeneradaptern, die zum Lieferumfang von IIS gehören. Der Listeneradapter ermöglicht die Kommunikation zwischen WAS und einem Dienst, der andere Protokolle als HTTP verwendet. Zur Unterstützung der Verarbeitung von Meldungen, die über ein anderes Protokoll eingehen, müssen Sie benutzerdefinierte Listeneradapter und andere Unterstützungsmodule entwickeln, was eine komplexe Aufgabe sein kann. Weitere Informationen zu Listeneradaptern finden Sie unter Listener Adapters(https://go.microsoft.com/fwlink/?LinkId=160359). Mit der Unterstützung für das automatischer Start-Feature können Sie Anwendungen bereitstellen, die jedes Protokoll zu IIS unterstützen. Wenn Sie das automatischer Start-Feature für diese bereitgestellten Anwendungen aktivieren, werden sie von WAS aktiviert und im Arbeitsprozess aktiv gehalten.

Szenarien für einen automatischen Start

Dienste, die das Feature für den automatischen Start verwenden, unterstützen Szenarien wie das folgende:

  • Der Computer, auf dem die Anwendung bereitgestellt wurde, wird neu gestartet. IIS, WAS, Anwendungspool, Anwendung und Dienste sind so konfiguriert, dass sie automatisch mit dem Computer gestartet werden. Die Dienste werden in diesem Szenario automatisch mit der Anwendung neu gestartet. Wenn die Anwendung für den automatischen Start aller Dienste konfiguriert ist, werden alle anwendungsinternen Dienste automatisch gestartet; andernfalls werden nur die in der Datei Web.config angegebenen Dienste gestartet.

  • Einige Protokolle wie das WS-Discovery-Ankündigungsprotokoll setzen voraus, dass Anwendungen immer verfügbar sind. Wenn Sie automatischen Start für eine Anwendung und Dienste in der Anwendung aktivieren, startet das Feature für den automatischen Start von Windows Server AppFabric die Dienste automatisch immer dann, wenn die Anwendung gestartet wird, die den Dienst enthält.

  • Der Anwendungspool, zu dem ein Dienst gehört, erkennt, dass zu viele seiner Arbeitsprozesse innerhalb eines angegebenen Zeitraums instabil geworden sind und initiiert den schnellen Ausfallschutz. Das Feature für den automatischen Start unterstützt den schnellen Ausfallschutz insofern, als dass die Anwendung und deren Dienste nach dem Überschreiten des Schwellenwerts für den schnellen Ausfallschutz nicht neu gestartet werden, wenn ein Prozess innerhalb eines angegebenen Zeitraums mehr als eine konfigurierbare Anzahl Male ausfällt.

Computerneustart-Szenario

Die folgende Liste enthält die typischen Schritte in einem Beispielszenario für einen Computerneustart, die vom Feature für den automatischen Start unterstützt werden:

  1. WAS (Windows Process Activation Service) wird gestartet, wenn der Dienst für den automatischen Start konfiguriert ist. Sie können WAS mit dem Applet Dienste unter Verwaltung konfigurieren.

  2. WAS startet sämtliche Anwendungspools, die für den automatischen Start konfiguriert sind. Die Einstellung startMode für diese Anwendungspools ist in der Datei ApplicationHost.config auf AlwaysRunning festgelegt.

    <applicationPools>
        <add name=”MyAppPool” startMode=”AlwaysRunning” />
    </applicationPools>
    
  3. Der Anwendungs-Manager von WAS lädt alle Anwendungen, die für den automatischen Start konfiguriert sind. Das Attribut serviceAutoStartEnabled ist für diese Anwendungen in der Datei ApplicationHost.config auf true festgelegt.

    <sites>
        <site name="MySite" id="1">
            <application path="/"  serviceAutoStartEnabled=”true” serviceAutoStartProvider=”Service” serviceAutoStartMode=”All/Custom”>
                <virtualDirectory path="/" physicalPath="C:\MySite" />
            </application>
        </site>
    </sites>                
    
  4. Der Anwendungsinitialisierungsprozess ruft das Modul für den automatischen Start auf, mit dem die Dienste gestartet werden, die für den automatischen Start konfiguriert sind.

    Das serviceAutoStartProvider-Attribut ist ein IIS-Erweiterungspunkt, der zum Starten von benutzerdefinierten Objekten verwendet werden kann. Das Windows Server AppFabric-Installationsprogramm installiert den Service-Anbieter und erweitert das IIS-Schema, damit das serviceAutoStartMode-Attribut hinzugefügt werden kann.

    Wenn das serviceAutoStartMode-Attribut für eine Anwendung auf All festgelegt ist, werden alle Dienste in der Anwendung gestartet. Wenn die serviceAutoStartMode-Einstellung für eine Anwendung auf Custom festgelegt ist, werden nur die in der Datei Web.config angegebenen Dienste gestartet.

    Das Modul für den automatischen Start verwendet den Wert der relativeVirtualPath-Einstellung zum Laden eines Diensts. Das folgende Konfigurationsfragment stammt aus einer Web.config-Datei, in der die relativeVirtualPath-Einstellungen für zwei Dienste konfiguriert sind. Die relativeVirtualPath-Einstellung eines Diensts ist der Pfad zum Dienst relativ zu der Anwendung, die den Dienst enthält.

    // a sample Web.config fragment with two services configured to use the auto-start feature.
    <Microsoft.ProcessServer.Hosting>
        <serviceAutoStart>
            <add relativeVirtualPath =”/Calendar/Appointments.xamlx” >
            <add relativeVirtualPath =”/BookStore/ShoppingCart.svc” >
        </serviceAutoStart>
    </Microsoft.ProcessServer.Hosting>
    

    Tipp

    Die Einstellungen für den automatischen Start von Diensten werden in der Datei Web.config gespeichert, und die Einstellungen für den automatischen Start für Anwendungspools und Anwendungen werden in der Datei ApplicationHost.config gespeichert.

Konfigurieren des automatischen Starts

Sie können IIS-Manager-Erweiterungen oder von AppFabric bereitgestellte Cmdlets verwenden, um das automatischer Start-Feature für einen WCF- oder WF-Dienst zu konfigurieren. Detaillierte schrittweise Anweisungen zum Konfigurieren des automatischer Start-Features finden Sie in den Themen Konfigurieren des automatischen Starts mithilfe von IIS-Manager und Konfigurieren des automatischen Starts mithilfe von Windows Server AppFabric-Cmdlets im Abschnitt Konfigurieren des automatischen Starts.

Hinweis

Wenn das automatischer Start-Feature für einen Dienst aktiviert ist, ignoriert IIS die Einstellung Leerlauftimeout für den Anwendungspool und die Anwendung, die den Anwendungspool verwendet. Der mit dem Anwendungspool verbundene Arbeitsprozess bleibt auch dann im Arbeitsspeicher, wenn sich der Anwendungspool länger im Leerlauf befindet als mit dem Wert Leerlauftimeout angegeben wurde.

Warnung

Wenn der Initialisierungscode für einen Dienst ineffizient geschrieben wurde und die Initialisierung sehr lange dauert, läuft der IIS-Startzeitraum möglicherweise ab, und der Prozess wird im aktuellen Zustand heruntergefahren. Daher empfiehlt sich ggf. ein Entwurf, bei dem im Initialisierungscode für den Dienst mehrere Threads verwendet werden, wenn dieser auf Computern mit mehr als einem Prozessor ausgeführt wird.

Siehe auch

Konzepte

Konfigurieren des automatischen Starts

  2011-12-05