Тест веб-службы 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;

Вы можете добавить свойство к классу, чтобы сделать его настраиваемым при желании - это было бы немного сложнее (но не очень сложно).

Не забудьте переименовать класс и изменить пространство имен для своего проекта, чтобы вы могли получить к нему доступ из своих собственных тестов....

Другие вопросы по тегам