Я создаю клиент-серверное приложение WCF. Однако в моем первом тесте простой вызов (метод в основном просто return true;
) занимает много времени (~ 5 секунд).
Я попытался отследить его, и вот скриншот трассировки вызова
Как вы можете видеть, между строками 2 и 3 есть промежуток в 5 секунд (хотя, если честно, я не знаю, что означают строки 2 и 3)
В конфигурации клиента (вызывающего) привязка такая (в основном генерируется Visual Studio
<wsHttpBinding>
<binding name="WSHttpBinding_IAgent" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text"
textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="None">
</security>
</binding>
</wsHttpBinding>
и на сервере
<wsHttpBinding>
<binding name="WSHttpBinding_IAgent" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:05:00" sendTimeout="00:05:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="16777216" maxReceivedMessageSize="16777216"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="16777216"
maxArrayLength="16384" maxBytesPerRead="16384" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="None"/>
</binding>
И то, как я называю это примерно так
var client = new AgentClient(binding, BuildEndpointAddress(hostName, port));
for(int i =0; i<10; i++)
client.IsAlive(); //this call is very slow despite just returning true;
// subsequent calls are also slow so probably not because of wake-up time
Обратите внимание, что для этого теста и сервер, и клиент находятся на одном компьютере, поэтому проблема не может быть в сети. Любая идея, что вызывает медлительность или как я могу найти дополнительную информацию для устранения этой проблемы?