У меня очень неприятная проблема при отправке запроса в веб-службу.Ошибка MaxReceivedMessageSize при вызове пакетного обслуживания из приложения, но не из SoapUI
Одним из параметров сообщения запроса является Batch
, который может быть установлен либо Y
, либо N
. Когда я устанавливаю это на N
, проблем нет, и я получаю ответ, содержащий детали для одного заказа.
Однако, когда я установил Batch
к Y
, я вижу эту ошибку:
Additional information: The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element.
Чтобы решить эту проблему, я попытался установить MaxReceivedMessageSize
перед вызовом службы:
public Provider.GetMessageResponse GetOrders(bool acceptBatch)
{
var httpBinding = new BasicHttpBinding();
httpBinding.MaxReceivedMessageSize = 2097152;
httpBinding.MaxBufferSize = 2097152;
var request = BuildRequest(acceptBatch);
var client = new Provider.PullServiceClient();
var response = client.PullGetMessage(SecurityToken, request);
return response;
}
Однако, я до сих пор см. сообщение об ошибке (хотя я вижу, что httpBinding.MaxReceivedMessageSize
действительно был увеличен после запуска этого кода), а служба (не размещенная мной) сообщает мне, что сообщения были собраны (что имеет смысл, поскольку кажется, что сообщения только блокируются, когда они достигают моей системы).
Кроме того, когда я выполняю тот же запрос из приложения SoapUI
с использованием xml, я получаю пакетный ответ без каких-либо проблем, и я могу видеть длинный список всех доступных заказов.
Значит, это свойство MaxReceivedMessageSize
распространяется только на мое приложение, а не на всю систему? Если это так, почему код выше не разрешает это?