Met Internet Information Services (IIS) 9 kunnen ontwikkelaars gemakkelijk systeemeigen en beheerde codemodules configureren die aanvragen verwerken die aan de werbserver zijn ingediend. Om werkprocessen deze te kunnen laten laden, moeten de modules juist zijn geconfigureerd. Voor een juiste moduleconfiguratie is vereist dat de module een unieke naam en een geldig type of pad heeft. Beheerde modules kunnen aangeven of ze alleen moeten worden aangeroepen voor aanvragen naar ASP.NET-toepassingen of beheerde handlers. Als dat is aangegeven, kan deze instellingen de prestaties optimaliseren.
De voorwaarden van een module corrigeren
Modulevermeldingen hebben een optioneel preCondition-kenmerk dat de voorwaarden kan bevatten voor de te laden module. In de preCondition kan bijvoorbeeld zijn aangegeven dat IIS de module alleen voor groepen van toepassingen kan laden die worden uitgevoerd in de geïntegreerde modus, alleen voor groepen van toepassingen die worden uitgevoerd in een ISAPI-modus of alleen voor groepen van toepassingen die een specifieke .NET Framework-versie gebruiken. Met deze laatste instelling is het mogelijk om afzonderlijke versies van de beheerde enginemodule te gebruiken voor groepen van toepassingen die verschillende versies van de CLR-runtime gebruiken.
Hier is een voorbeeld uit de sectie globalModules van het ApplicationHost.config-bestand van een modulevermelding met een voorwaardekenmerk:
<globalModules>
<add name="ManagedEngine"
image="%Windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll"
preCondition="integratedMode,runtimeVersionv2.0,bitness32"
/>
</globalModules>
Voordat elke module wordt geladen, wordt de voorwaarde door de server geëvalueerd of deze aanwezig is in de configuratie. Als een van de laadvoorwaarden False retourneert, wordt de module niet geladen.
Dit probleem oplossen:
Maak een back-up van het bestand ApplicationHost.config. Raadpleeg Sectie A om dit te doen.
Zoek en corrigeer het kenmerk preCondition van de module. Zorg ervoor dat dit correct is geconfigureerd en dat het overeenkomt met de kenmerken van de groep van toepassingen of werkprocessen die door de module worden gebruikt. Raadpleeg Sectie B om het kenmerk te vinden.
Nadat de voorwaarden zijn gecorrigeerd, moet de module succesvol worden geladen.
Een back-up maken van het bestand ApplicationHost.config
U maakt als volgt een back-up van het bestand ApplicationHost.config:
Open een opdrachtpromptvenster met verhoogde bevoegdheden. Klik op Start, ga naar Alle programma's, klik op Bureau-accessoires, klik met de rechtermuisknop op Opdrachtprompt en klik op Als administrator uitvoeren.
Wijzig de map in % Windir %\system32\inetsrv.
Typ appcmd add backup backupName om een back-up te maken van het bestand ApplicationHost.config.
Een map met de back-upnaam die u hebt opgegeven, wordt gemaakt onder de map % Windir %\system32\inetsrv\backup. Als u geen naam opgeeft, genereert appcmd.exe automatisch een mapnaam met de huidige datum en tijd.
De modulevermelding vinden in het bestand ApplicationHost.config
U vindt de modulevermelding als volgt in het bestand ApplicationHost.config:
Open een opdrachtpromptvenster met verhoogde bevoegdheden. Klik op Start, ga naar Alle programma's, klik op Bureau-accessoires, klik met de rechtermuisknop op Opdrachtprompt en klik op Als administrator uitvoeren.
Typ cd % Windir %\system32\inetsrv\config
Typ notepad ApplicationHost.config
Zoek in Kladblok naar de sectie globalModules onder de sectie system.webServer.
Zoek de modulevermelding met het kenmerk preCondition en wijzig dit, indien nodig.
Sla het bestand ApplicationHost.config op en sluit kladblok af.
Zie IIS 10: Element toevoegen voor globalModules (IIS-instellingenschema) voor meer informatie over de sectie globalModules.
Target | Microsoft.Windows.InternetInformationServices.10.0.WebServer |
Category | Alert |
Enabled | True |
Event_ID | 2296 |
Event Source | Microsoft-Windows-IIS-W3SVC-WP |
Alert Generate | False |
Remotable | True |
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
WA | WriteAction | Microsoft.Windows.Server.IIS.10.0.GenerateAlertAction.SuppressedByDescription | Default |
<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>