2009-11-04 198 views
0

我在客戶端asp.net網站中添加了對WCF服務的引用。調用WCF服務 - 服務實例

現在,我只是實例化WCF服務在每個服務方法調用爲:

TemplateServiceClient objTemplateService = new TemplateServiceClient(); 
objTemplateService.MethodCall(); 

我不知道有關性能下降,原因是上面。

如果它將成爲一個性能問題,你能否建議我一個更好的方法來調用我的服務方法。

謝謝!

回答

3

瞭解性能的唯一方法就是測試它,所以如果您有任何疑問,應該這樣做。

如果不知道自己在做什麼以及如何使用,很難知道。

Web服務客戶端是另一個對象,這樣你可以做所有常見的東西:

  • 你與每一次新的實例做什麼;
  • 如果服務調用的方法相同,則重用該對象;
  • 將該對象作爲類中的字段創建;

就個人而言,我傾向於第二個爲太多的事情要結束了,但適合我的用戶配置文件。

+0

感謝您的回覆。我創建了一個類級別的對象。但是因爲我打電話時我正在用不同的方法進行服務調用,所以我需要在每種方法中實例化它。任何解決方法來避免這種情況? – iniki 2009-11-04 16:56:12

+0

我認爲這個問題應該是:你需要嗎?考慮一下你的維護。如果每次都創建對象的新實例,則可以合理確定它處於正確的狀態,並且沒有通過其他方法進行更改。我想這取決於事情是如何建立在你身上的,但是說一些人在六個月內出現並做出了一項影響Web服務的變化,但並沒有檢查每一種方法 - 她可能會引入各種錯誤。 – serialhobbyist 2009-11-04 17:13:01

+0

你可以創造一些可怕的全球/靜態/單身的東西,並從任何地方訪問它,但你應該?可能不會。性能可能是主要關注的問題,但如果不是問題,維護應該在那裏。 – serialhobbyist 2009-11-04 17:15:53

0

只要性能可以接受,這不是問題。不要過度優化,即使不知道是否確實存在性能問題...

衡量你的表現,看看它是否是。

每個通話場景確實是WCF的首選和推薦場景 - 它只是最好的那種方式,沒有多餘的狀態服務,會話或單身 - 它只是工作和擴展到相當好甚至相當沉重的負載。