2016-02-01 4 views
0

Я создал много нагрузочных тестов на своем веб-сайте, и время ответа начинает замедляться после 100 клиентов.Время отклика веб-сайта Asp.net медленное

Чтобы сделать вещи ясно и просто, я создал фиктивный сайт asp.net по умолчанию и установить на метод загрузки нескольких методов, которые вызывают WCF службу:

protected void Page_Load(object sender, EventArgs e) 
     { 

       WcfClientService client = new WcfClientService(); 
       //syncrhron wcf service call 
       var testMethodOne = client.callMethodOne(); 
       var testMethodTwo = client.callMethodTwo(); 
       var testMethodThree = client.callMethodTree(); 




     } 

Я анализируемый журналы на службу WCF и WCF сервис возвращающегося Запрос за каждый метод за короткое время < 200 MS. Asp.net -> WCF - SOAP. Что может быть узким местом sicne WCF возвращает очень быстрый отклик, но сеть дает мне средний ответ в 20 секунд (более 100 клиентов) для веб-формы, которая имеет эти вызовы дерева вызовов.

Я вызов нагрузочного теста с помощью JMeter

Я РЭ на моих IIS много запросов в очереди (на сайт)

enter image description here

сайт и служба WCF являются Hosten на IIS 8.5 (Server 2012R2 Windows)

+0

Создайте клиент ** один ** время и кешируйте его. Стоимость создания клиента - это дорогостоящая операция по сравнению с фактической отправкой/получением вызовов. – Tim

+0

Тим, это пример кода, clientService кэшируется, и экземпляр создается один раз ... не на каждой загрузке ... извините за то, что не сказал это – Avicena00

ответ

0

Трудно сказать точно, но вы можете попробовать утилизацию клиента WCF после использования и посмотреть, если это помогает:

protected void Page_Load(object sender, EventArgs e) 
    { 
      using (var client = new WcfClientService()) 
      { 
       //synchronous wcf service call 
       var testMethodOne = client.callMethodOne(); 
       var testMethodTwo = client.callMethodTwo(); 
       var testMethodThree = client.callMethodTree(); 
      } 
    } 

По умолчанию ограничение количества исходящих запросов, которое может сделать сайт ASP.net, можно изменить, отредактировав следующее в вашем web.config.

<configuration> 
    <system.net> 
    <connectionManagement> 
     <add address="*" maxconnection="65535"/> 
    </connectionManagement> 
    </system.net> 
</configuration> 
+0

Paddy Я пробовал, но не повезло :( – Avicena00

Смежные вопросы