代码之家  ›  专栏  ›  技术社区  ›  Mike Atlas

SOAP消息大小是否大于允许的限制[security.msgsize v 1.0]?怎么用?

  •  1
  • Mike Atlas  · 技术社区  · 14 年前

    我在帮一个同事跑步 SOATest (使测试SOAP服务变得容易的Web服务客户端)在WCF Web服务操作上,对于“大”响应,我们看到以下错误:

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

    这是令人困惑的,因为该工具实际上能够从不包含SOAP错误的服务器获得响应。而且,响应根本不是很大-确切地说,是22kb。我似乎不能用谷歌搜索这个错误信息,其中的语法/拼写错误也对我没有好处。

    这是最潮湿的环境吗?可能是WCF设置?或者是WS-Security设置?这当然不是我们在服务器级别施加的限制。

    这里有一个 screenshot 后人。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Mike Atlas    14 年前

    我们能够在 SOATest forums .

    security.msgsize是可添加到响应中的默认SOAP策略规则检查之一。这里有一个 screenshot 适用于特定规则。此特定规则位于:

    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 条件是可以根据需要更改此规则的位置。或者您可以简单地取消选中它作为默认策略包的一部分,然后以这种方式保存更改。