我正在創建一個WCF服務器 - 客戶端應用程序。然而,在我第一次測試,一個簡單的調用(基本方法只是return true;
)需要花費大量的時間(約5秒),簡單的WCF調用需要很長時間
我試圖跟蹤它,這裏的呼叫跟蹤截圖
正如你可以看到第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
請注意這個測試的方式,服務器和客戶端都在同一臺計算機上,因此不能網絡問題。任何想法是什麼導致了緩慢或如何找到更多的信息來解決這個問題?
後續調用速度更快嗎?可以在第一次通話時編譯或「醒來」。 – McGarnagle
沒有我嘗試循環調用client.IsAlive()幾次,隨後的調用顯示沒有區別於第一個。 –
@dbaseman準確地說,持續時間確實有所不同,但它似乎是因爲隨機性而不是系統性的。例如,在我的第一次測試中,連續呼叫的持續時間(同樣的方法)是4秒,4,6,2,4,3,8,並且當我重試時,它是: 9,3,2,4,5, 5,3 –