2013-04-12 27 views
0

我與網絡層的Web應用程序是一個ASP.NET MVC 3 web應用程序,服務層是WCF,數據庫是MSSQL異步控制器和ASP.NET線程處理

在這篇文章:http://blogs.msdn.com/b/tmarq/archive/2010/04/14/performing-asynchronous-work-or-tasks-in-asp-net-applications.aspx,它提到,我應該做的異步處理「當線程切換出權重方面的成本效益切換」,「例如,如果你讓一個異步Web服務請求到遠程服務器

這是否意思是說,在每一個請求中,我都應儘可能地嘗試使用異步處理(在ASP.NE中T MVC我認爲它是異步控制器而不是ASP.NET中的PageAsyncTask,糾正我,如果我錯了)每當有一個調用WCF服務(或者如果我不使用WCF服務,那麼每當我有一個數據庫調用)增加服務器的吞吐量,增加服務器一次可處理的請求數量?

另一個有點相關的問題:沒有人知道或可以指向一篇文章,解釋如何從Web層連接到WCF時的連接限制?我聽說WCF的限制是每次5個併發連接,但無法確認。如果它是5個併發連接,這意味着WCF中的瓶頸即使增加了Web層的吞吐量?

非常感謝您

回答

2

這是否意味着,在每一個請求,我應該嘗試儘可能我可以使用異步處理

有這樣做的前提是你有一個好處I/O操作(遠程HTTP調用,例如WCF服務調用,數據庫調用...)。但是,只有在執行大量負載測試並確定同步調用是您的應用程序的瓶頸以防萬一您具有如此高的處理需求時,您才應該這樣做。在大多數情況下,異步代碼的複雜性以及很難找到錯誤的風險大於好處。

沒有人知道或可以指向一篇文章,解釋如何連接到WCF從Web層這樣的連接限制?

我不知道這種限制的存在。

+0

謝謝,對於WCF連接的限制,我看到討論overhere:http://stackoverflow.com/questions/686466/why-does-wcf-limit-concurrent-connections-to-5,我不知道是否這意味着WCF默認只能處理5個併發連接? –