Les sites Web et les applications Web dépendent de la disponibilité des pools d'applications IIS (Internet Information Services). Les pools d'applications IIS dépendent à leur tour du service d'activation des processus Windows (WAS). Si WAS n'est pas en cours d'exécution ou que des erreurs se produisent lors du démarrage ou de l'arrêt d'un pool d'applications, les sites Web et les applications Web sont susceptibles de ne pas être disponibles.
Contrôler l'exécutable de fermeture automatique
Un fichier exécutable spécifié par l'utilisateur peut être configuré pour s'exécuter automatiquement quand un pool d'applications est arrêté par le service de publication World Wide Web (W3SVC). Le fichier exécutable peut, par exemple, rediriger le trafic pour le pool d'applications vers un autre serveur. Le fichier peut être spécifié dans le Gestionnaire des services Internet (IIS) et est représenté par l'attribut autoShutdownExe de la section system.applicationHost/applicationPools/failure du fichier ApplicationHost.config.
Si l'exécution du processus autoShutdownExe échoue, les résolutions possibles sont les suivantes :
Vérifiez que le chemin et le nom de fichier du programme autoShutdownExe sont correctement spécifiés.
Assurez-vous que le compte système dispose des autorisations d'accès et d'exécution du fichier.
Assurez-vous que le programme peut s'exécuter indépendamment d'un arrêt de pool d'applications.
Vérifier que le chemin et le nom de fichier sont correctement spécifiés
Cliquez sur Démarrer, sur Panneau de configuration, puis sur Outils d'administration.
Cliquez avec le bouton droit sur Gestionnaire des services Internet (IIS) et sélectionnez Exécuter en tant qu'administrateur.
Dans le volet Connexions, développez le nom du serveur.
Cliquez sur Pools d'applications. Une liste des pools d'applications sur le serveur s'affiche dans le volet du milieu.
Dans le volet du milieu, cliquez sur le pool d'applications dont vous souhaitez contrôler l'exécutable de fermeture.
Dans le volet Actions, cliquez sur Paramètres avancés. La fenêtre Paramètres avancés s'affiche.
Faites défiler vers le bas pour afficher la section Protection rapide en cas d'échec.
Recherchez l'entrée Exécutable de fermeture, puis examinez le chemin et le nom de fichier sur la droite. Vérifiez que le chemin et le nom de fichier sont corrects.
Cliquez sur OK.
Contrôler la liste de contrôle d'accès de l'exécutable de fermeture
Ouvrez une fenêtre d'invite de commandes avec privilèges élevés. Cliquez sur Démarrer, pointez sur Tous les programmes, cliquez sur Accessoires, cliquez avec le bouton droit sur Invite de commandes, puis cliquez sur Exécuter en tant qu’administrateur.
Tapez start explorer.
À l'aide de l'Explorateur Windows, accédez au fichier exécutable de fermeture.
Cliquez avec le bouton droit sur le fichier, puis sélectionnez Propriétés. La boîte de dialogue Propriétés du fichier exécutable s'affiche.
Cliquez sur l'onglet Sécurité.
Dans la fenêtre Noms de groupes ou d'utilisateurs, veillez à ce que SYSTEM s'affiche. Si ce n'est pas le cas, cliquez sur Modifier pour ajouter le compte système.
Dans la fenêtre Autorisations de SYSTEM, assurez-vous que le compte système dispose au moins des autorisations Lire et exécuter pour l'exécutable de fermeture.
Vérifier que le programme peut s'exécuter indépendamment
Testez l'exécution du programme exécutable séparément d'un événement d'arrêt de pool d'applications. Si le processus peut s'exécuter indépendamment d'un arrêt de pool d'applications, il devrait s'exécuter correctement lorsque le pool d'applications sera automatiquement désactivé par WAS.
Target | Microsoft.Windows.InternetInformationServices.6.2.ApplicationPool |
Category | Alert |
Enabled | True |
Alert Generate | False |
Remotable | True |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.Server.IIS.6.2.WarningAndErrorEventProvider | Default |
Filter | ConditionDetection | Microsoft.Windows.InternetInformationServices.6.2.ApplicationPool.EventFilter | Default |
WA | WriteAction | Microsoft.Windows.Server.IIS.6.2.GenerateAlertAction.SuppressedByDescription | Default |
<Rule ID="Microsoft.Windows.InternetInformationServices.6.2.WAS.did.not.run.the.automatic.shutdown.executable.for.application.pool" Enabled="true" Target="Microsoft.Windows.InternetInformationServices.6.2.ApplicationPool" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>Alert</Category>
<DataSources>
<DataSource ID="DS" TypeID="Microsoft.Windows.Server.IIS.6.2.WarningAndErrorEventProvider">
<LogName>System</LogName>
</DataSource>
</DataSources>
<ConditionDetection ID="Filter" TypeID="Microsoft.Windows.InternetInformationServices.6.2.ApplicationPool.EventFilter">
<Expression>
<And>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^(5054|5091)$</Pattern>
</RegExExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-WAS</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</ConditionDetection>
<WriteActions>
<WriteAction ID="WA" TypeID="Microsoft.Windows.Server.IIS.6.2.GenerateAlertAction.SuppressedByDescription">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.InternetInformationServices.6.2.WAS.did.not.run.the.automatic.shutdown.executable.for.application.pool.AlertMessage"]$</AlertMessageId>
</WriteAction>
</WriteActions>
</Rule>