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.
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álohujte soubor ApplicationHost.config. Informace získáte v oddílu A.
Vyhledejte atribut preCondition modulu a opravte ho. Ujistěte se, zda je správně nakonfigurovaný a odpovídá vlastnostem fondu aplikací nebo pracovních procesů, které budou modul používat. Informace o tom, jak atribut vyhledat, najdete v oddílu B.
Po opravě předběžných podmínek by se měl modul správně načíst.
Zálohování souboru ApplicationHost.config
Postup pro zálohování souboru ApplicationHost.config:
Otevřete okno příkazového řádku se zvýšenými oprávněními. Klikněte na tlačítko Start, přejděte na Všechny programy, klikněte na Příslušenství, klikněte pravým tlačítkem na Příkazový řádek a potom na Spustit jako správce.
Přejděte do adresáře %Windir%\system32\inetsrv.
Zadejte text appcmd add backup Název_zálohy k 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:
Otevřete okno příkazového řádku se zvýšenými oprávněními. Klikněte na tlačítko Start, přejděte na Všechny programy, klikněte na Příslušenství, klikněte pravým tlačítkem na Příkazový řádek a potom na Spustit jako správce.
Zadejte příkaz cd %Windir%\system32\inetsrv\config
Zadejte příkaz notepad applicationHost.config
V Poznámkovém bloku vyhledejte oddíl globalModules v oddílu system.webServer.
Vyhledejte záznam modulu, který obsahuje atribut preCondition a v případě potřeby ho změňte.
Uložte soubor ApplicationHost.config a ukončete aplikaci Poznámkový blok.
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).
Target | Microsoft.Windows.InternetInformationServices.6.2.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.6.2.GenerateAlertAction.SuppressedByDescription | Default |
<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>