Il modulo ha una condizione preliminare non valida

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

Knowledge Base article:

Riepilogo

Internet Information Services (IIS) 9 consente agli sviluppatori di configurare facilmente moduli di codici nativi e gestiti per l'elaborazione delle richieste al server Web. Affinché i processi di lavoro possano caricarli, i moduli devono essere configurati correttamente. A questo scopo, è necessario che i moduli abbiano nomi univoci e tipi o percorsi validi. I moduli gestiti possono indicare se devono essere richiamati solo per le richieste agli handler gestiti o alle applicazioni ASP.NET. Quando viene specificata questa opzione, le prestazioni possono risultare ottimizzate.

Soluzioni

Correggere le precondizioni di un modulo

I moduli hanno l'attributo facoltativo preCondition che può contenere condizioni per il caricamento del modulo. Ad esempio, preCondition può specificare che IIS deve caricare il modulo solo per i pool di applicazioni eseguiti in modalità integrata, solo per i pool di applicazioni eseguiti in modalità ISAPI o solo per i pool di applicazioni che utilizzano una determinata versione di .NET Framework. Questa ultima impostazione consente di utilizzare versioni separate del modulo del motore gestito per i pool di applicazioni che utilizzano diverse versioni di runtime CLR.

Di seguito è fornito un esempio della sezione globalModules nel file ApplicationHost.config per un modulo con l'attributo precondition:

<globalModules>

<add name="ManagedEngine"

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

preCondition="integratedMode,runtimeVersionv2.0,bitness32"

/>

</globalModules>

Prima di caricare ciascun modulo, il server valuta la precondizione, se presente nella configurazione. Se una delle precondizioni di caricamento restituisce un valore false, il modulo non viene caricato.

Per risolvere il problema:

Eseguire una copia di backup del file ApplicationHost.config

Per eseguire una copia di backup del file ApplicationHost.config:

Una directory con il nome di backup specificato verrà creata nella directory %Windir%\system32\inetsrv\backup. Se non si specifica un nome, Appcmd.exe genera automaticamente un nome per la directory usando la data e l'ora correnti.

Trovare la voce relativa al modulo nel file ApplicationHost.config

Per trovare la voce relativa al modulo nel file ApplicationHost.config:

Per altre informazioni sulla sezione globalModules, vedere IIS 10: elemento add per globalModules (schema impostazioni IIS).

Element properties:

TargetMicrosoft.Windows.InternetInformationServices.10.0.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.10.0.GenerateAlertAction.SuppressedByDescription Default

Source Code:

<Rule ID="Microsoft.Windows.InternetInformationServices.10.0.Module.has.an.invalid.precondition" Enabled="true" Target="Microsoft.Windows.InternetInformationServices.10.0.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.10.0.GenerateAlertAction.SuppressedByDescription">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.InternetInformationServices.10.0.Module.has.an.invalid.precondition.AlertMessage"]$</AlertMessageId>
</WriteAction>
</WriteActions>
</Rule>