Delphi 10.4 SOAP Web应用部署IIS10遇ERR_INVALID_HTTP_RESPONSE问题求助
IIS10部署SOAP ISAPI DLL出现ERR_INVALID_HTTP_RESPONSE排查方案
检查ISAPI权限与限制
确认IIS的ISAPI和CGI限制列表里,你的SOAP DLL已经被设为“允许”状态,没添加的话手动补全路径并勾选允许;同时检查虚拟应用的ISAPI筛选器,暂时禁用其他无关筛选器测试是否冲突。核对应用池配置
- 应用池的.NET CLR版本要和服务匹配(比如.NET Framework 4.0选v4.0,别选“无托管代码”,除非是纯原生ISAPI);
- 把托管管道模式切换为经典模式,老SOAP服务对集成模式兼容性普遍较差;
- 确认应用池标识(比如ApplicationPoolIdentity)对DLL所在文件夹及文件本身有读取+执行权限,别只给文件夹权限。
排查响应格式问题
这个错误大概率是DLL返回的HTTP响应不符合协议规范:- 用Fiddler抓包看原始响应,检查有没有完整的状态行(比如
HTTP/1.1 200 OK)、正确的Content-Type(WSDL应为text/xml),有没有响应开头的多余空白字符; - 如果你自己写的ISAPI代码,仔细检查响应输出逻辑,必须严格遵循HTTP协议格式。
- 用Fiddler抓包看原始响应,检查有没有完整的状态行(比如
确认正确访问URL
- 先直接访问DLL文件:
http://localhost/eFileSvr/你的SOAP服务文件名.dll,看是否能返回基础响应; - 多数SOAP ISAPI服务需要通过查询参数生成WSDL,正确URL应该是
http://localhost/eFileSvr/你的SOAP服务文件名.dll?wsdl,而不是/wsdl后缀。
- 先直接访问DLL文件:
查看日志找细节
- 打开IIS站点日志(默认
C:\inetpub\logs\LogFiles),对应请求的状态码/子状态码能定位具体错误; - 检查Windows事件查看器的应用程序日志,找IIS或服务抛出的异常事件,里面有更详细的报错信息。
- 打开IIS站点日志(默认
内容的提问来源于stack exchange,提问作者Marc Phillips
相关产品推荐
相关产品推荐

