You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IIS使用HttpPlatformHandler连接部署Java应用的Tomcat配置异常求助

问题排查及修复方案


1. 首先修复web.config的语法错误

你当前的web.config存在冗余的闭合标签,在</location>之后多写了一行</system.webServer>,会导致配置无法被IIS正确解析,先删除这行冗余标签。

2. 修正HttpPlatformHandler的进程启动配置

HttpPlatformHandler需要持续监控后台进程的运行状态,而你用的startup.bat是后台异步启动脚本,执行后会立刻退出,会被HttpPlatformHandler判定为进程启动失败,因此转发规则不生效,IIS就会默认触发目录浏览逻辑,出现403.14错误。
修改httpPlatform节点的配置:

<!-- 把processPath改成catalina.bat,arguments改成run -->
<httpPlatform processPath="C:\tools\apache-tomcat-10.0.12\bin\catalina.bat" arguments="run" stdoutLogEnabled="true" stdoutLogFile="\\?\C:\tools\log.txt">

同时你原来的stdoutLogFile路径少了反斜杠,已经在上面的配置里修正,才能正常生成日志用于后续排查。

3. 修正配置生效范围问题

你现在的所有HttpPlatformHandler配置都包裹在<location path="AdminSuperTrustedSite" overrideMode="Allow">节点下,这意味着配置仅对站点下的/AdminSuperTrustedSite子路径生效,如果你直接访问站点根路径,配置不会生效,自然触发目录浏览逻辑。

  • 如果你需要整个站点都走Tomcat转发,直接删掉外层的location包裹节点即可
  • 如果你确实只需要子路径生效,访问时需要在域名后加上/AdminSuperTrustedSite前缀

4. 排查Tomcat自身配置问题

  • 确认你已经将Java应用正确部署到Tomcat的webapps/ROOT目录下,或者配置了对应的Context路径映射,避免Tomcat启动后无应用可访问
  • 确认JRE_HOME路径真实存在:64位系统下32位JDK会存放在Program Files (x86)目录下,如果你的JDK是32位,需要把变量值改成%programfiles(x86)%\java\jdk1.8.0_202
  • 可以先手动启动Tomcat,写死端口验证应用本身可以正常访问,排除应用层面的问题

5. 基础环境校验

确认IIS已经正确安装HttpPlatformHandler模块,可在IIS管理器的「模块」列表中查看是否存在httpPlatformHandler,未安装的话需要先安装对应插件才能正常使用转发功能。


内容的提问来源于stack exchange,提问作者Seegel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:18:03