我的服務器上有IIS 7.5託管的WCF服務。我在我的服務中使用了Entity framework 5.0。WCF性能:連接到WCF服務需要很長時間
當我通過添加服務引用和在站點中創建客戶端從本地系統調用該服務時,大約需要40秒才能獲得響應。我試着調用我在本地的同樣的服務,這裏只需要3-4秒。
將參考這是對服務器這是對本地系統的現場服務後,綁定和端點的網絡配置添加的樣子:
<binding name="WSHttpBinding_IMyWCFService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:50:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647"
maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true" />
</security>
</binding>
<endpoint address="https://<url>/MyWCFService.svc/soap"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IMyWCFService"
contract="MerchantService.IMyWCFService" name="WSHttpBinding_IMyWCFService" />
首先我認爲這是一個問題實體框架。但後來我使用Entity框架分析器檢查了該方法的執行時間。它幾乎不需要1秒鐘。
也當我打電話的服務,它需要添加一個標題,我添加。
那麼,它需要40秒的時間。而且它的啓動速度並不慢,或者只是第一次花時間。它總是需要這麼多時間。
網絡速度可能是導致此延遲的原因。如果是的話,達到什麼程度?
該服務返回一個列表List。這可能是一個問題,我們不應該返回列表。有什麼可以替代的?
此外,Entity框架是否每次請求到達時都建立與數據庫的連接,以及數據庫連接是否需要時間。有可能嗎?
請幫忙。 感謝
嗨Deepansh,謝謝你的回覆。網絡可能是一個增加時間的問題,但最快的n/w我可以測試我的服務,我發現時間是25秒。我發現問題出在EF上。請看答案。 – Deeps 2013-03-14 04:49:10