Modül geçersiz önkoşula sahip

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

Knowledge Base article:

Özet

Internet Information Services (IIS) 8, Web sunucusuna yapılan istekleri işleyen yerel ve yönetilen kod modüllerinin geliştiriciler tarafından kolayca yapılandırılmasına olanak tanır. Çalışan işlemlerinin bunları yükleyebilmesi için modüllerin düzgün şekilde yapılandırılması gerekir. Uygun modül yapılandırması için modülün benzersiz bir ada ve geçerli bir türe veya dizin yoluna sahip olması gerekir. Yönetilen modüllerde sadece ASP.NET uygulamalarına veya yönetilen işleyicilere yapılan istekler için çağrılma seçeneği belirtilebilir. Bu ayar belirtildiğinde performans iyileştirilebilir.

Çözümler

Bir modülün önkoşullarını düzeltme

Modül girişleri, modülün yüklenmesi için koşullar içerebilecek isteğe bağlı preCondition özniteliğine sahiptir. Örneğin, preCondition IIS'nin modülü yalnızca tümleşik modda çalıştırılan uygulama havuzları, ISAPI modunda çalıştırılan uygulama havuzları veya belirtilen bir .NET Framework sürümü kullanan uygulama havuzları için yüklemesini belirtebilir. Bu son ayar, CLR çalışma zamanının farklı sürümlerini kullanan uygulama havuzları için yönetilen altyapı modülünün ayrı sürümlerinin kullanılmasını sağlayabilir.

Aşağıda preCondition özniteliği olan bir modül girişinin ApplicationHost.config dosyasındaki globalModules bölümünden bir örnek yer almaktadır :

<globalModules>

     <add name="ManagedEngine"

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

           preCondition="integratedMode,runtimeVersionv2.0,bitness32"

      />

</globalModules>

Sunucu, her modülü yüklemeden önce yapılandırmada yer alan önkoşulu değerlendirir. Yükleme önkoşullarından biri yanlış olarak döndürülürse, modül yüklenmez.

Bu sorunu gidermek için:

ApplicationHost.config dosyasını yedekleme

ApplicationHost.config dosyasını yedeklemek için:

%Windir%\system32\inetsrv\backup dizininde belirttiğiniz yedekleme adıyla bir dizin oluşturulur. Ad belirtmezseniz, Appcmd.exe tarafından geçerli tarih ve saat kullanılarak otomatik olarak dizin adı oluşturulur.

ApplicationHost.config dosyasında modül girişini bulma

ApplicationHost.config dosyasında modül girişini bulmak için:

globalModules bölümü hakkında daha fazla bilgi için bkz. IIS 8: globalModules için Öğe ekle (IIS Ayarları Şeması).

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>