SOAP消息大小超过允许限制[安全.MSGSIZE v 1.0]?如何解决?
我正在帮助一个同事在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
这个条件中,你可以根据需要更改这个规则。或者,你也可以简单地取消选中它,作为默认策略包的一部分,然后保存这个更改。