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.
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:
Open an elevated Command Prompt window. Click Start, point to All Programs, click Accessories, right-click Command Prompt, and then click Run as administrator.
Type cd %Windir%\system32\inetsrv\config
Type notepad applicationHost.config
In notepad, search for the globalModules section under the system.webServer section.
Add a module entry that contains the name and image attributes. An example is shown in the following section.
Save the ApplicationHost.config file, and exit 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).
Target | Microsoft.Windows.InternetInformationServices.2008.WebServer | ||
Category | Alert | ||
Enabled | True | ||
Event_ID | 2298 | ||
Event Source | Microsoft-Windows-IIS-W3SVC-WP | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
WA | WriteAction | Microsoft.Windows.Server.IIS.2008.GenerateAlertAction.SuppressedByDescription | Default |
<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>