Moduł zawiera nieprawidłowy warunek wstępny

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

Knowledge Base article:

Podsumowanie

Internetowe usługi informacyjne (IIS) 9 umożliwiają deweloperom proste konfigurowanie macierzystych i zarządzanych modułów kodu, które mogą przetwarzać żądania wysyłane do serwera sieci Web. Aby procesy robocze mogły załadować moduły, muszą one być prawidłowo skonfigurowane. Prawidłowa konfiguracja modułu wymaga podania unikatowej nazwy oraz prawidłowego typu lub ścieżki. Dla modułów zarządzanych można określić, czy powinny być wywoływane tylko w przypadku żądań do aplikacji ASP.NET lub zarządzanych programów obsługi. Określenie tego ustawienia może zoptymalizować wydajność.

Rozwiązania

Popraw warunki wstępne modułu

Wpisy modułu mają opcjonalny atrybut preCondition, który może zawierać warunki wymagane do załadowania modułu. Na przykład atrybut preCondition może wskazywać, że usługi IIS mają ładować moduł tylko dla pul aplikacji działających w trybie zintegrowanym, tylko dla pul aplikacji działających w trybie ISAPI albo tylko dla pul aplikacji korzystających z określonej wersji środowiska .NET Framework. To ostatnie ustawienie umożliwia używanie różnych wersji modułu mechanizmu zarządzanego dla pul aplikacji korzystających z różnych wersji środowiska uruchomieniowego CLR.

Oto pochodzący z sekcji globalModules pliku ApplicationHost.config przykład wpisu modułu z atrybutem warunku wstępnego:

<globalModules>

<add name="ManagedEngine"

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

preCondition="integratedMode,runtimeVersionv2.0,bitness32"

/>

</globalModules>

Przed załadowaniem każdego modułu serwer sprawdza, czy warunek wstępny jest spełniony (jeśli znajduje się on w konfiguracji). Jeśli dowolny z warunków wstępnych ładowania nie jest spełniony, moduł nie zostanie załadowany.

Aby rozwiązać ten problem:

Wykonaj kopię zapasową pliku ApplicationHost.config

Aby wykonać kopię zapasową pliku ApplicationHost.config:

W katalogu %Windir%\system32\inetsrv\backup zostanie utworzony katalog o podanej nazwie kopii zapasowej. Jeśli nie określisz nazwy, plik Appcmd.exe automatycznie wygeneruje nazwę katalogu, korzystając z bieżącej daty i godziny.

Znajdź wpis modułu w pliku ApplicationHost.config

Aby znaleźć wpis modułu w pliku ApplicationHost.config:

Aby uzyskać więcej informacji na temat sekcji globalModules, zobacz IIS 10: add Element for globalModules (IIS Settings Schema) (IIS 10: element add dla elementu globalModules — schemat ustawień usług 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>