Я работаю над тем, чтобы ускорить большое количество интеграционных тестов в нашей среде.
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что во время разрыва между тестами одна служба WCF, использующая привязку msmq, закрывается примерно за 1 минуту.
В процессе разрыва, который мы зацикливаем на наших сервис-хостах, вызываем метод Close () с очень коротким тайм-аутом, переопределяя значение closeTimeout в конфигурации WCF. Это хорошо работает для привязок net.tcp, но одной службе, которая использует msmq, все еще требуется 1 минута для закрытия. Кажется, что closeTimeout не имеет никакого эффекта.
Конфиг для тестовой службы выглядит следующим образом:
<netMsmqBinding>
<binding name="NoMSMQSecurity" closeTimeout="00:00:01" timeToLive="00:00:05"
receiveErrorHandling="Drop" maxRetryCycles="2" retryCycleDelay="00:00:01" receiveRetryCount="2">
<security mode="None" />
</binding>
</netMsmqBinding>
И заключительный звонок, который я использую, прямо так:
service.Close(new TimeSpan(0, 0, 0, 0, 10));
Есть ли другой способ, чтобы я мог быстрее закрыть сервис-хост?
Поскольку это автоматизированный тест, который на данный момент прошел успешно или не удалось, я не хочу ждать каких-либо необработанных сообщений или аналогичных.
С уважением,
За Салми