Здравствуйте, SoLame, Вы писали:
SL>Привет коллеги!
SL>Есть код, который дергает через WCF некий сервис
SL> //t1
SL>response = await Task.Factory.FromAsync<XXXRequest,XXXResponse>(
SL> c.BeginXXX,
SL> c.EndXXX,
SL> request,
SL> "XXXApiCall");
SL>//t2
SL>
SL>где с — System.ServiceModel.ClientBase<YYY>
SL>на определенном количестве запросов (примерно 1400 в минуту)
SL>время ответа работы данного метода(t2-t1) резко возрастает — с 3 секунд до 20 и более.
SL>в тоже время, если запустить другой процесс на той же машине, с такими же настройками, и разбить нагрузку пополам, то время работы метода нормализуется.
SL>подозреваю, что я уперся в какое то ограничение,
SL>на подобие System.Net.ServicePointManager.DefaultConnectionLimit(сейчас выставлено int.MaxValue)
SL>но к сожалению не знаю в какое..
SL>куда копать? подскажите плиз...
SL>p.s.
SL>настройки
SL>SL>var binding = new BasicHttpBinding();
SL> binding.MaxBufferSize = int.MaxValue;
SL> binding.MaxReceivedMessageSize = int.MaxValue;
SL> binding.ReaderQuotas = XmlDictionaryReaderQuotas.Max;
SL> binding.Security.Mode = BasicHttpSecurityMode.Transport;
SL> binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
SL>
Профилировали как конекции создаются, случайно в MaxConnections который есть 2 по умолчанию не упёрлись?