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を実行するように設定します。
これを解決する手がかりは、エラーメッセージにあります(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の管理コンソールでもこれを行うことができます。
サイトに移動し、構成エディターのアプレット/機能を起動します。
構成エディターで、[セクション]リストボックスからsystem.webServer/handlers
を選択し、From:リストボックスからApplicationHost.config <location path="[SITENAME]" />
を選択して、[セクションのロック解除:
コマンドラインバージョンの/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
は実行可能である必要があると思われます。