Тест веб-службы BizUnit - настройка MaxReceivedMessageSize
Я тестирую один из сервисов wcf, опубликованных с BizTalk с модулем biz, и использую следующий код:
WebServiceStep wsStep = new WebServiceStep();
wsStep.ServiceUrl = //service url;
wsStep.FailOnError = true;
wsStep.Action = //service method name;
wsStep.RequestBody = new FileDataLoader() { FilePath = "request.xml");
testCase.ExecutionSteps.Add(wsStep);
Данный метод обычно возвращает много данных, которые превышают квоту максимального размера сообщения для входящих сообщений (65536), проблема в том, как установить MaxReceivedMessageSize
в тестовом коде выше?
1 ответ
Фреймворк не предоставляет этого свойства по умолчанию, но вы можете добавить его довольно легко. Скопируйте код из WebServiceStep.cs в ваш проект и найдите следующий блок:
var binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly);
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
binding.UseDefaultWebProxy = true;
Если вы хотите, чтобы максимальный размер был 10 МБ, вам нужно добавить что-то вроде:
binding.MaxReceivedMessageSize = 10000000;
Вы можете добавить свойство к классу, чтобы сделать его настраиваемым при желании - это было бы немного сложнее (но не очень сложно).
Не забудьте переименовать класс и изменить пространство имен для своего проекта, чтобы вы могли получить к нему доступ из своих собственных тестов....