SOAP消息大小超过允许限制[安全.MSGSIZE v 1.0]?如何解决?

1 投票
1 回答
656 浏览
提问于 2025-04-15 18:16

我正在帮助一个同事在WCF网络服务操作上运行SOATest(这是一个让测试SOAP服务变得简单的网络服务客户端),但是在处理“较大”的响应时,我们遇到了这个错误:

SOAP Message size it greater than allowed limit [SECURITY.MSGSIZE v 1.0]

这让我很困惑,因为这个工具实际上能够从服务器获取到没有SOAP故障的响应。而且,响应的大小其实并不大——准确来说是22kb。我在网上找不到这个错误信息的相关内容,而且这个错误信息中的语法/拼写错误也没有帮到我。

这是不是SOATest的设置问题?或者是WCF的设置?还是WS-Security的设置?显然,这不是我们在服务器端施加的限制。

这里有一张截图,留作记录。

1 个回答

0

我们在SOATest论坛上找到了这个错误的解决办法。

SECURITY.MSGSIZE是一个默认的SOAP策略规则检查,可以添加到响应中。这里有一张截图,展示了这个规则是如何应用的。这个规则的位置在:

C:\Program Files\Parasoft\SOAtest\5.5.3\rules\SOAP\SECURITY.MSGSIZE.rule

如果你打开默认的策略配置包,位置在:

C:\Program Files\Parasoft\SOAtest\5.5.3\rules\soa.policy

你可以通过右键点击SOAP->避免大SOAP消息 [SECURITY.MSGSIZE]->编辑->方法来禁用或修改SECURITY.MSGSIZE规则的值:

def checkSize(value, context):
    message = XMLUtil.serialize(value)
    size = len(message)
    if size > 10240:
        return 1
    else:
        return 0

size > 10240这个条件中,你可以根据需要更改这个规则。或者,你也可以简单地取消选中它,作为默认策略包的一部分,然后保存这个更改。

撰写回答