我正在设置一个 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 source error 中提到)写错了。有人可以证实这一点吗?我一直无法找到一个样本 web.config 文件来关闭。
我从另一台正在工作的服务器复制了整个 jk 文件夹(包括 isapi_redirect.dll、isapi_redirect.properties、uriworkermap.properties、web.config 和 workers.properties),但是该服务器的配置与原来不同设置以不同的方式运行 Tomcat。
解决此问题的线索在错误消息中(IIS 非常擅长解释 500.19 错误,这很好):
这就是说您不能指定配置部分更改(在本例
<handlers accessPolicy="Read, Execute, Script">
中是在您的web.config
文件中)。您可以通过使用以下命令在站点级别解锁此部分来解决此问题:
[SITENAME]
安装 TomCat 位的站点的名称在哪里。您也可以在 IIS7 的管理控制台中执行此操作:
导航到站点并启动配置编辑器小程序/功能:
在 Configuration Editor中,从
system.webServer/handlers
Section 列表框和From:列表框中选择,然后单击Unlock Section:ApplicationHost.config <location path="[SITENAME]" />
/commit:apphost
命令行版本中的开关和ApplicationHost.config <location path=...
GUI 版本中的位置确保此部分在 IIS 的applicationHost.config
文件中而不是在您的web.config
. 这意味着当有人编辑文件时,它不太可能被键盘滑动撤销web.config
。在发动机罩下添加的是一个
<location>
看起来像的元素:但是,在这样做之前,我会先尝试删除
web.config
文件中有问题的行,但我怀疑它isapi_redirect.dll
需要是可执行的。