Modul má neplatnou předběžnou podmínku.

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

Knowledge Base article:

Souhrn

Internetová informační služba (IIS) 8 vývojářům umožňuje snadnou správu modulů s nativním a spravovaným kódem, které zpracovávají požadavky zadané webovému serveru. Aby je mohly pracovní procesy načíst, musí být moduly správně nakonfigurovány. Správná konfigurace modulu vyžaduje, aby měl modul jedinečný název a platný typ nebo cestu. Spravované moduly mohou určovat, zda by měly být vyvolány pouze na vyžádání aplikacemi ASP.NET nebo spravovanými obslužnými rutinami. Pokud je toto nastavení zadáno, může zajistit optimalizaci výkonu.

Řešení

Oprava předběžných podmínek modulu

Záznamy modulu mají volitelný atribut preCondition, který může obsahovat podmínky pro načtení modulu. Atribut preCondition může například určovat, že služba IIS modul načte pouze pro fondy aplikací spuštěné v integrovaném režimu, pouze pro fondy aplikací spuštěné v režimu ISAPI nebo pouze pro fondy aplikací, které používají zadanou verzi rozhraní .NET Framework. Toto poslední nastavení umožňuje použití samostatných verzí spravovaného modulu pro fondy aplikací, které používají různé verze běhového modulu CLR.

Toto je příklad oddílu globalModules konfiguračního souboru ApplicationHost.config položky modulu obsahující atribut preCondition:

<globalModules>

     <add name="ManagedEngine"

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

           preCondition="integratedMode,runtimeVersionv2.0,bitness32"

      />

</globalModules>

Před nahráním jednotlivých modulů server vyhodnotí předběžnou podmínku, pokud je v konfiguraci k dispozici. Pokud některá z předběžných podmínek vrátí hodnotu False, modul se nenahraje.

Postup pro řešení tohoto problému:

Zálohování souboru ApplicationHost.config

Postup pro zálohování souboru ApplicationHost.config:

V adresáři %Windir%\system32\inetsrv\backup se vytvoří adresář se zadaným názvem zálohy. Pokud nezadáte název, rutina Appcmd.exe automaticky vygeneruje název adresáře pomocí aktuálního data a času.

Vyhledání záznamu modulu v souboru ApplicationHost.config

Postup pro vyhledání záznamu modulu v souboru ApplicationHost.config:

Další informace o oddílu globalModules získáte v tématu IIS 8: přidání elementu pro globalModules (schéma nastavení služby 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>