У меня есть приложение, которое вызывает службу WCF на высокой частоте. Приложение начинает работать нормально, а затем через несколько минут каждый звонок начинает генерировать эту ошибку:Ошибка запроса времени ожидания WCF
System.TimeoutException: канал запроса был отключен, после чего был отправлен запрос после 00:02:00. Увеличьте значение тайм-аута, переданного вызову Запросить или увеличьте значение SendTimeout в Binding.
Я пробовал все, что я могу думать, чтобы обойти эту ошибку, например:
- Установка несколько ConcurrencyMode на сервисе:
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)] public class ListingService : IListingService
- Настройка более высокие пределы для максимальных одновременных вызовов/сеансов/экземпляров в сервисе web.config:
serviceThrottling maxConcurrentCalls="100000" maxConcurrentSessions="100000" maxConcurrentInstances="100000"
- Задание более servicepointmanager defaultconnectionlimit на Application_Start на global.asax сервиса:
protected void Application_Start(object sender, EventArgs e) { System.Net.ServicePointManager.DefaultConnectionLimit = 100000; }
- убедившись, что я закрытия клиентских подключений:
using (var client = new ListingServiceClient()) { client.SaveListing(listing); client.Close(); }
Вот услуги web.config - http://pastebin.com/d9qtZUKN
Однако, я все еще получаю ошибку. Я уверен, что вызов службы не займет много времени. Есть идеи?
Чтобы подтвердить, что вызов wcf на самом деле не так долго, я создал веб-метод, который ничего не делает и называет его несколько раз из тестового примера. Через пару минут он начинает генерировать ошибку таймаута выше. Есть ли ограничение на максимальные соединения, которое я достигаю в IIS 7? – Justin
Существует ограничение на количество подключений, но оно деируется на нескольких ядрах процессора, поэтому у вас другая проблема. Напишите конфигурацию службы и тело метода в этом вопросе. – vorrtex
Добавлена ссылка на код сервиса web.config. Нечего добавлять для тела метода, потому что это пустой метод, т. Е. Public void Test() {} – Justin