インターネット インフォメーション サービス (IIS) 9 を使用すると、開発者は Web サーバーへの要求を処理するネイティブおよびマネージ コード モジュールを容易に構成できます。ワーカー プロセスがこれらのモジュールを読み込むには、これらのモジュールを正しく構成する必要があります。モジュールを正しく構成するには、モジュールに一意の名前と有効な種類またはパスを指定する必要があります。ASP.NETアプリケーションまたはマネージ ハンドラーへの要求に対してのみマネージ モジュールを呼び出すようにするかどうかを、マネージ モジュールで指定できます。指定すると、この設定によりパフォーマンスが最適化されます。
モジュールの登録を修正する
IIS10 環境では、モジュールは、サーバー イベントにサブスクライブできる論理エンティティです。Web サーバーは、サーバーの起動時にモジュールを読み込むように構成されています。起動中、サーバーは、モジュールに関係するイベントに対して登録することをモジュールに要求します。必要なイベントに対するモジュールの登録は、モジュールの実装時に行われます。モジュールに、サーバーがモジュールを登録するためにアクセスする有効なエントリ ポイントがないと、登録は失敗します。
この問題を解決するには、次の手順を実行します:
ApplicationHost.config ファイルのバックアップを作成します。この方法は、「セクション A」を参照してください。
ApplicationHost.config の globalModules セクションにあるモジュール リストから、該当するモジュールを削除します。 モジュールが 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」と入力します。
メモ帳で、system.webServer セクションの下にある globalModules セクションを検索します。
エラーが発生したモジュール エントリを見つけ、削除します。
ApplicationHost.config ファイルを保存し、メモ帳を終了します。
globalModules セクションの詳細については、「 IIS 10: globalModules の add 要素 (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>