У меня есть приложение, которое вызывает службу 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
Тем не менее, я все еще получаю ошибку.Я уверен, что сервисный звонок не займет много времени.Есть идеи?