Ошибка тайм-аута канала запроса WCF - PullRequest
2 голосов
/ 27 января 2011

У меня есть приложение, которое вызывает службу WCF с высокой частотой.Приложение начинает работать нормально, а затем через несколько минут каждый вызов начинает генерировать эту ошибку:

System.TimeoutException: истекло время ожидания канала запроса при попытке отправить после 00:02:00.Увеличьте значение тайм-аута, передаваемое вызову Request, или увеличьте значение SendTimeout в Binding.

Я перепробовал все, что мог придумать, чтобы обойти эту ошибку, например:

  • Установка нескольких параллельных режимов в службе:

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple)] public class ListingService : IListingService

  • Установка более высоких ограничений на максимальное число одновременных вызовов / сеансов / экземпляров в службе web.config:

serviceThrottling maxConcurrentCalls="100000" maxConcurrentSessions="100000" maxConcurrentInstances="100000"

  • Установка более высокого предела по умолчанию для servicepointmanager на 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

Тем не менее, я все еще получаю ошибку.Я уверен, что сервисный звонок не займет много времени.Есть идеи?

1 Ответ

0 голосов
/ 25 апреля 2011

Проблема заключалась в тайм-ауте дБ, что привело к тайм-ауту WCF.

...