我正在使用 Coldfusion 10 构建 SOAP Web 服务,我在 IIS 7.5 上运行,Coldfusion 通过 AJP 1.3 连接器连接到独立的 Java Tomcat 服务器。
我的服务器将接受的 SOAP 请求的大小似乎达到了 4-8KB 的限制,如果超过该限制,则连接被重置 - 没有显示错误。
但在我的 CF 日志中,我得到:
The fault returned when invoking the web service operation is:<br> <pre>org.apache.axis2.AxisFault: Connection reset at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:197) at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:402) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:231) at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443) at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406) at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) at reverserisk_ncm.Reverserisk_ncmStub.dumpHeader(Reverserisk_ncmStub... The specific sequence of files included or processed is: C:\rr1.5\Clarence\webservice\test_ncm.cfm, line: 36
我已经尝试了一些东西,首先我确保它是一个大小限制,添加 30 秒的睡眠会产生相同的结果,所以我尝试了:
- Coldfusion Max POST size 数据集设置为高值
- IIS 服务器配置 - system.web/httpRuntime.maxRequestLength -> maxInt 和 security.requestFilter.maxAllowedContentLength
- Apache Tomcat:conf/server.xml - AJP 1.3 连接器 maxPostSize/maxSavePostSize 值 -> 2MB
- 将 Axis2.xml 从 HTTP/1.1 更改为 HTTP/1.0 以强制禁用“分块”传输编码 - 我读到这可能是针对 DDOS 攻击的安全功能
如果有人遇到过类似的问题,那就太好了,我知道这也可能是一个 ServerFault 问题——但希望在 CF 上做 SOAP 的人也看到过类似的东西,谢谢!