Az Internet Information Services (IIS) 8 lehetővé teszi a fejlesztők számára, hogy egyszerűen konfigurálják azon natív és felügyelt kódmodulokat, amelyek a webkiszolgálónak küldött kérések feldolgozását végzik. A modulokat megfelelően kell konfigurálni, hogy a munkavégző folyamatok számára betölthetők legyenek. A modulok megfelelő konfigurálásához egyedi modulnév és érvényes típus vagy útvonal szükséges. A felügyelt modulok meghatározhatják, hogy csak az ASP.NET-alkalmazásokhoz vagy felügyelt kezelőkhöz intézett kérésre indulnak-e el. A beállítás optimalizálhatja a teljesítményt, ha megadják.
Modul előfeltételeinek javítása
A modulbejegyzések rendelkeznek egy választható preCondition attribútummal, amely tartalmazhatja a betöltendő modulhoz tartozó feltételeket. A preCondition megadhatja például, hogy az IIS a modult csak integrált módban futó alkalmazáskészletekhez, csak ISAPI módban futó alkalmazáskészletekhez, vagy csak olyan alkalmazáskészletekhez töltse be, amelyek a .NET-keretrendszer egy adott verzióját használják. Ez a legutóbbi beállítás lehetővé teszi a felügyelt alrendszermodul különálló verzióinak használatát olyan alkalmazáskészletek esetében, amelyek a CLR futási környezet különböző verzióit használják.
Példa az ApplicationHost.config fájl globalModules szakaszából egy olyan modulbejegyzés esetében, amely rendelkezik preCondition attribútummal:
<globalModules>
<add name="ManagedEngine"
image="%Windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll"
preCondition="integratedMode,runtimeVersionv2.0,bitness32"
/>
</globalModules>
Az egyes modulok betöltése előtt a kiszolgáló értékeli az előfeltételt, amennyiben létezik ilyen a konfigurációban. Ha a betöltési előfeltételek bármelyike false (hamis) értéket ad vissza, a modult nem tölti be a rendszer.
A probléma megoldása:
Készítsen biztonsági mentést az ApplicationHost.config fájlról. A művelet végrehajtásával kapcsolatban tekintse meg az A szakaszt.
Keresse meg és javítsa ki a modul preCondition attribútumát. Győződjön meg róla, hogy az helyesen van konfigurálva, és egyezik azon alkalmazáskészlet vagy munkavégző folyamatok jellemzőivel, amelyek használni fogják a modult. Az attribútum megkeresésével kapcsolatban tekintse meg a B szakaszt.
Az előfeltételek kijavítása után a modulnak sikeresen be kell töltődnie.
Biztonsági másolat készítése az ApplicationHost.config fájlról
Biztonsági másolat készítése az ApplicationHost.config fájlról:
Nyisson meg egy emelt szintű engedélyekkel rendelkező parancssori ablakot. Kattintson a Start gombra, mutasson a Minden program lehetőségre, ezután kattintson a Kellékek menüpontra, kattintson a jobb gombbal a Parancssor elemre, majd kattintson a Futtatás rendszergazdaként parancsra.
Lépjen a %Windir%\system32\inetsrv könyvtárra.
Írja be az appcmd add backup biztonsági másolat neve parancsot az ApplicationHost.config fájl biztonsági másolatának az elkészítéséhez.
A rendszer létrehoz egy könyvtárat a biztonsági másolat számára megadott névvel a %Windir%\system32\inetsrv\backup könyvtárban. Ha nem ad meg nevet, az Appcmd.exe automatikusan létrehoz egy könyvtárnevet az aktuális dátum és idő használatával.
A modulbejegyzés megkeresése az ApplicationHost.config fájlban
A modulbejegyzés megkeresése az ApplicationHost.config fájlban:
Nyisson meg egy emelt szintű engedélyekkel rendelkező parancssori ablakot. Kattintson a Start gombra, mutasson a Minden program lehetőségre, ezután kattintson a Kellékek menüpontra, kattintson a jobb gombbal a Parancssor elemre, majd kattintson a Futtatás rendszergazdaként parancsra.
Írja be a cd %Windir%\system32\inetsrv\config parancsot
Írja be a notepad applicationHost.config parancsot
A Jegyzettömbben keresse meg a globalModules szakaszt a system.webServer szakaszban.
Keresse meg a preCondition attribútumot tartalmazó modulbejegyzést, és módosítsa, ha szükséges.
Mentse az ApplicationHost.config fájlt, és lépjen ki a Jegyzettömbből.
A globalModules szakasszal kapcsolatos további információkért tekintse meg az IIS 8: elemek hozzáadása a globalModules szakaszhoz (IIS beállítási séma) című cikket.
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>