Я пытаюсь помочь коллеге запустить SOATest (клиент веб-сервисов, который упрощает тестирование SOAP-сервисов) на WCF веб-службы, а для "больших" ответов мы видим эту ошибку:
SOAP Message size it greater than allowed limit [SECURITY.MSGSIZE v 1.0]
Это вызывает недоумение, поскольку инструмент действительно может получить ответ от сервера, который не содержит ошибок SOAP. Кроме того, ответ не очень большой - 22kb, если быть точным. Я не могу представить Google это сообщение об ошибке, и ошибка грамматики/орфографии в нем тоже не работает для меня.
Является ли это настройкой SOATest? Может быть, настройка WCF? Или настройку WS-Security? Конечно, это не ограничение, которое мы накладываем на серверный уровень.
Здесь скриншот для потомков.
Мы смогли получить ответ на эту ошибку на 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
вы можете отключить или изменить значение правила SECURITY.MSGSIZE, если вы щелкните правой кнопкой мыши по SOAP- > Избегайте больших сообщений SOAP [SECURITY.MSGSIZE] → Edit- > Method:
def checkSize(value, context):
message = XMLUtil.serialize(value)
size = len(message)
if size > 10240:
return 1
else:
return 0
Условие size > 10240
, где это правило может быть изменено по мере необходимости. Или вы можете просто снять флажок, как часть пакета политики по умолчанию, и сохранить изменения таким образом.