The Global Modules list is empty

Microsoft.Windows.InternetInformationServices.2008.The.Global.Modules.list.is.empty (Rule)

Knowledge Base article:

Summary

Internet Information Services (IIS) 7 enables developers to easily configure native and managed code modules that process requests made to the Web server. In order for worker processes to load them, the modules must be configured correctly. Proper module configuration requires that the module have a unique name, and a valid type or path. Managed modules can specify whether they should be invoked only for requests to ASP.NET applications or managed handlers. When specified, this setting can optimize performance.

Resolutions

Define a global module

In order for IIS to be able to serve requests successfully, there must be at least one global module defined in the in the globalModules section in the ApplicationHost.config file. The module definition must have a unique name attribute for the module and an image attribute that specifies the file system path of the .dll file that contains the global module.

Add a global module definition to ApplicationHost.config

To add a global module definition to ApplicationHost.config by using notepad:

Sample Global Module Definition

<globalModules>

   <add name="AccessCheckModule"

        image="D:\Windows\system32\inetsrv\checkacc.dll"

        preCondition=""

   />

</globalModules>

For more information about the globalModules section, see IIS 7: add Element for globalModules (IIS Settings Schema).

Element properties:

TargetMicrosoft.Windows.InternetInformationServices.2008.WebServer
CategoryAlert
EnabledTrue
Event_ID2298
Event SourceMicrosoft-Windows-IIS-W3SVC-WP
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
The Global Modules list is empty
{0}
Event LogApplication

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.EventProvider Default
WA WriteAction Microsoft.Windows.Server.IIS.2008.GenerateAlertAction.SuppressedByDescription Default

Source Code:

<Rule ID="Microsoft.Windows.InternetInformationServices.2008.The.Global.Modules.list.is.empty" Enabled="onEssentialMonitoring" Target="Microsoft.Windows.InternetInformationServices.2008.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>2298</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="WA" TypeID="Microsoft.Windows.Server.IIS.2008.GenerateAlertAction.SuppressedByDescription">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.InternetInformationServices.2008.The.Global.Modules.list.is.empty.AlertMessage"]$</AlertMessageId>
</WriteAction>
</WriteActions>
</Rule>