web-dev-qa-db-ja.com

IIS 7.5およびTomcatセットアップ:エラー500.19

64ビットIIS 7.5/Tomcat 7.0.26サーバーをセットアップしていますが、http://localhost-に移動すると、次のエラーが発生します。

エラーの概要

HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.

詳細なエラー情報

Module  IIS Web Core
Notification    BeginRequest
Handler Not yet determined
Error Code  0x80070021
Config Error    This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false".
Config File \\?\C:\Folder\Apache-Tomcat-7.0.29\jk\web.config
Requested URL   http://localhost:80/jakarta/isapi_redirect.dll
Physical Path   C:\Folder\Apache-Tomcat-7.0.29\jk\isapi_redirect.dll
Logon Method    Not yet determined
Logon User  Not yet determined

構成ソース(4行目は赤で強調表示されています)

3:     <system.webServer>
4:         <handlers accessPolicy="Read, Execute, Script" />
5:     </system.webServer>

問題は、web.configファイル(Configソースエラーに記載されている)が正しく書き込まれていないことだと思います。誰かがこれを確認できますか?使用するサンプルのweb.configファイルを見つけることができませんでした。

動作している別のサーバーからjkフォルダー全体(isapi_redirect.dll、isapi_redirect.properties、uriworkermap.properties、web.config、workers.propertiesを含む)をコピーしましたが、そのサーバーの構成は元々異なっていました。別の方法でTomcatを実行するように設定します。

2
OrangeGrover

これを解決する手がかりは、エラーメッセージにあります(IISは500.19エラーの説明に非常に優れています。これは素晴らしいことです)。

この構成セクションは、このパスでは使用できません。これは、セクションが親レベルでロックされている場合に発生します。ロックはデフォルト(overrideModeDefault = "Deny")であるか、overrideMode = "Deny"または従来のallowOverride = "false"を使用してロケーションタグによって明示的に設定されます。

これは、構成セクションの変更(この場合は<handlers accessPolicy="Read, Execute, Script">ファイルのweb.config)を指定できないことを意味します。

次のコマンドを使用して、サイトレベルでこのセクションのロックを解除することにより、これを解決できます。

appcmd unlock config "[SITENAME]" -section:handlers /commit:apphost

ここで、[SITENAME]は、Tomcatビットがインストールされているサイトの名前です。

IIS7の管理コンソールでもこれを行うことができます。

  1. サイトに移動し、構成エディターのアプレット/機能を起動します。

    enter image description here

  2. 構成エディターで、[セクション]リストボックスからsystem.webServer/handlersを選択し、From:リストボックスからApplicationHost.config <location path="[SITENAME]" />を選択して、[セクションのロック解除

    enter image description here

コマンドラインバージョンの/commit:apphostスイッチとGUIバージョンのApplicationHost.config <location path=...の場所により、このセクションはapplicationHost.configではなくIISのweb.configファイルでロック解除されます。これは、誰かがweb.configファイル `を編集するときにキーボードを滑らせることによって元に戻される可能性が低いことを意味します。

ボンネットの下に追加されるのは、次のような<location>要素です。

<location path="[SITENAME]" overrideMode="Allow">
    <system.webServer>
        <handlers />
    </system.webServer>
</location>

ただし、その前に、まずweb.configファイルの問題のある行を削除してみますが、isapi_redirect.dllは実行可能である必要があると思われます。

2
Kev