Службы IIS 9 предоставляют разработчикам возможность легкой конфигурации встроенных и управляемых программных модулей, обрабатывающих запросы к веб-серверу. Чтобы обеспечить рабочим процессам возможность загрузки, модули должны иметь правильную конфигурацию. Надлежащая конфигурация модулей подразумевает наличие уникального имени модуля и допустимый тип или путь модуля. Управляемые модули могут указывать, следует ли их вызывать только для запросов к приложениям ASP.NET или управляемым обработчикам. Если этот параметр указан, он может оптимизировать производительность.
Исправление регистрации модуля
В среде IIS10 модуль — это логический объект, который может подписываться на события сервера. Веб-сервер настроен на загрузку модулей при запуске сервера. При запуске сервер отправляет модулю запрос зарегистрироваться на события, в которых он заинтересован. Реализация модуля отвечает за его регистрацию на необходимые события. Если у модуля отсутствует действующая точка входа, через которую сервер может получить доступ для регистрации модуля, произойдет сбой регистрации.
Для устранения этой проблемы выполните следующие действия:
создайте резервную копию файла ApplicationHost.config. Инструкции см. в Разделе A.
удалите модуль из списка модулей в разделе globalModules файла ApplicationHost.config. Если модуль присутствует в списке ApplicationHost.config, сервер будет пытаться загрузить его при запуске, и любой рабочий процесс, попытавшийся его использовать, не сможет этого сделать. Информацию об удалении модуля из конфигурации см. в Разделе B.
Пусть разработчик исправит точку входа модуля, чтобы модуль мог успешно зарегистрироваться на сервере.
После исправления точки входа модуля снова выполните добавление модуля в файл ApplicationHost.config.
Создание резервной копии файла ApplicationHost.config
Создание резервной копии файла ApplicationHost.config:
Откройте окно командной строки с повышенными правами. Нажмите кнопку "Пуск", наведите указатель на пункт "Все программы", выберите "Стандартные", щелкните правой кнопкой мыши пункт "Командная строка" и выберите "Запуск от имени администратора".
Перейдите в каталог %Windir %\system32\inetsrv.
Введите appcmd add backup имя_резервной_копии, чтобы создать резервную копию файла ApplicationHost.config.
Будет создан каталог с указанным именем резервной копии в каталоге %Windir %\system32\inetsrv\backup. Если вы не укажете имя, appcmd создаст имя каталога автоматически, используя текущую дату и время.
Удаление модуля из конфигурации
Удаление модуля из конфигурации:
Откройте окно командной строки с повышенными правами. Нажмите "Пуск", подведите указатель к пункту "Все программы", выберите пункт "Стандартные", щелкните правой кнопкой мыши пункт "Командная строка" и выберите команду "Запуск от имени администратора".
Перейдите в каталог %Windir %\system32\inetsrv\config.
Введите notepad ApplicationHost.config.
В блокноте найдите блок globalModules в разделе system.webServer.
Найдите запись модуля, которая выдает ошибку и удалите ее.
Сохраните файл ApplicationHost.config и выйдите из блокнота.
Дополнительные сведения о разделе globalModules см. в статье IIS 10: добавление элементов в globalModules (схема настроек IIS).
Target | Microsoft.Windows.InternetInformationServices.10.0.WebServer |
Category | Alert |
Enabled | True |
Event_ID | 2295 |
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.10.0.GenerateAlertAction.SuppressedByDescription | Default |
<Rule ID="Microsoft.Windows.InternetInformationServices.10.0.Module.registration.error.detected.failed.to.find.RegisterModule.entrypoint" 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>2295</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.registration.error.detected.failed.to.find.RegisterModule.entrypoint.AlertMessage"]$</AlertMessageId>
</WriteAction>
</WriteActions>
</Rule>