Le module a une condition préalable non valide

Microsoft.Windows.InternetInformationServices.6.2.Module.has.an.invalid.precondition (Rule)

Knowledge Base article:

Résumé

Internet Information Services (IIS) 8 permet aux développeurs de configurer facilement des modules de code natifs et managés qui traitent les demandes envoyées au serveur web. Pour que les processus de travail puissent les charger, les modules doivent être correctement configurés. Pour qu'un module soit correctement configuré, il doit avoir un nom unique et un chemin ou un type valide. Les modules gérés peuvent spécifier s'ils doivent uniquement être appelés pour les demandes destinées aux applications ASP.NET ou aux gestionnaires de code managés. S'il est spécifié, ce paramètre peut optimiser les performances.

Résolutions

Corriger les conditions préalables d'un module

Les entrées de module ont un attribut preCondition facultatif qui peut contenir des conditions pour le module à charger. Par exemple, preCondition peut spécifier que IIS doit charger le module uniquement pour les pools d'applications qui fonctionnent en mode intégré, uniquement pour les pools d'applications qui fonctionnent en mode ISAPI ou uniquement pour les pools d'applications qui utilisent une version de .NET Framework spécifiée. Ce dernier paramètre permet d'utiliser des versions séparées du module moteur géré pour les pools d'applications qui utilisent différentes versions du runtime CLR.

Voici un exemple issu de la section globalModules du fichier ApplicationHost.config d'une entrée de module qui comporte un attribut preCondition :

<globalModules>

     <add name="ManagedEngine"

           image="%Windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll"

           preCondition="integratedMode,runtimeVersionv2.0,bitness32"

      />

</globalModules>

Avant de charger chaque module, le serveur évalue la condition préalable si elle est présente dans la configuration. Si une des conditions préalables au chargement renvoie la valeur false, le module n'est pas chargé.

Pour résoudre ce problème :

Sauvegarder le fichier ApplicationHost.config

Pour sauvegarder le fichier ApplicationHost.config :

Un répertoire portant le nom de sauvegarde que vous spécifiez est créé sous le répertoire %Windir%\system32\inetsrv\backup. Si vous ne spécifiez pas de nom, Appcmd.exe génère automatiquement un nom de répertoire à l'aide de la date et de l'heure actuelles.

Rechercher l'entrée de module dans le fichier ApplicationHost.config

Pour rechercher l'entrée de module dans le fichier ApplicationHost.config :

Pour plus d'informations sur la section globalModules, consultez IIS 8 : élément add pour globalModules (schéma des paramètres IIS).

Element properties:

TargetMicrosoft.Windows.InternetInformationServices.6.2.WebServer
CategoryAlert
EnabledTrue
Event_ID2296
Event SourceMicrosoft-Windows-IIS-W3SVC-WP
Alert GenerateFalse
RemotableTrue
Event LogApplication

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.EventProvider Default
WA WriteAction Microsoft.Windows.Server.IIS.6.2.GenerateAlertAction.SuppressedByDescription Default

Source Code:

<Rule ID="Microsoft.Windows.InternetInformationServices.6.2.Module.has.an.invalid.precondition" Enabled="true" Target="Microsoft.Windows.InternetInformationServices.6.2.WebServer" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>Alert</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-IIS-W3SVC-WP</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>2296</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WA" TypeID="Microsoft.Windows.Server.IIS.6.2.GenerateAlertAction.SuppressedByDescription">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.InternetInformationServices.6.2.Module.has.an.invalid.precondition.AlertMessage"]$</AlertMessageId>
</WriteAction>
</WriteActions>
</Rule>