iis - 使用 CF/AJP 1.3/IIS 7.5 的 Axis 2 SOAP 调用达到 4KB 限制

标签 iis soap coldfusion axis2

我正在使用 Coldfusion 10 来构建 SOAP 网络服务,我在 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 秒的 sleep 产生了相同的结果,然后我尝试了:
  • Coldfusion Max POST 大小数据设置为高值
  • 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 已经看到了类似的东西,谢谢!

    最佳答案

    只是想知道,你需要 Axis 2 吗?你能试试 Axis 1 看看会发生什么吗? CF 10 将允许您在管理界面中更改该设置。

    我建议的另一件事是跟踪 CF 的日志并观察发生这种情况时是否有任何消息报告给控制台。

    这里有一些其他的东西要测试:

    1) 如果您不拥有要连接的 Web 服务,请尝试下载 WSDL 并将其与您自己的 CFC 相关联。 CFC 不必有任何实现,我们只是想知道在不调用其他服务时是否会出现不同的错误。

    2)你能缩小问题的大小吗?例如,如果您调整 WSDL 的大小以使其足够小以使其正常工作,然后慢慢地将其调整得越来越大,您能否找到总是导致问题的 WSDL 大小?

    3) 您是否尝试过删除 CF 创建的 Web 服务代理?他们在 {coldfusion10}/cfusion/wwwroot/WEB-INF/cfclasses 下,我想。

    基本上,我认为您需要找到一种方法,将无声的失败转化为更多信息。

    关于iis - 使用 CF/AJP 1.3/IIS 7.5 的 Axis 2 SOAP 调用达到 4KB 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14225434/

    相关文章:

    web-services - 使用 RDBMS 数据为 SoapUI 或类似的测试工具提供动力

    session - 使用不带 cookie 的 Coldfusion session

    mysql - SQL 查询多个表,具有多个联接和带有逗号分隔列表的列字段

    coldfusion - 如何通过 cfhttp 模拟真实的 http 请求?

    iis - 如何修复不会编译简单应用程序的 IIS Express?

    python - 使用 IIS HTTP PlatformHandler 前置并使用 Windows 身份验证时,如何在 Python 中获取经过身份验证的用户名?

    python - IIS 和 ISAPI-WSGI = 非常慢

    soap - WSDL 文件中的这一行是什么意思?

    xml - Magento 使用 soap v2 创建类别

    asp.net-mvc-4 - 没有参数的 MVC4 ActionLink 指向当前路径