天天看點

wcf 并發 http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d 大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 

http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d

大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 
wcf 并發 http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d 大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 

wcf 并發 http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d 大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 

Een vraag stellen

  • vrijdag 7 augustus 2009 2:57
    wcf 并發 http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d 大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 
    victoryliwenbo 0 Points  
    wcf 并發 http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d 大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 
    0 Aanmelden om te stemmen 現在在學習WCF技術,遇到了一個問題:當超過2000多個用戶端應用程式同時調用一個伺服器上的服務,該服務能不能承受得了?如果承受不了,有沒有什麼方法可以解決或者優化?并且我還想知道下WCF技術能實作的最大通信量是多少?
    • wcf 并發 http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d 大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 
      Reageren  
    • wcf 并發 http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d 大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 
      Citeren

Antwoorden

  • vrijdag 7 augustus 2009 3:41
    wcf 并發 http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d 大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 
    Frank Xu Lei SOA (MVP) 13.965 Points  
    wcf 并發 http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d 大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 
    wcf 并發 http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d 大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 

    1 Aanmelden om te stemmen Hi victory,

       你提出的問題很好,這個問題,相信很多人學習了WCF程式設計以後,都會有這樣的疑問,而且很多人在多測試的時候,往往還會出現大于10個用戶端同時調用服務的時候,就會出錯。服務沒有相應,抛出Timeout 異常。

       你的問題其實本質上是關于WCF處理大規模并發用戶端請求的問題。也就是WCF在處理大規模用戶端請求的時候,有沒有好的解決方案,或者表現。

       處理大規模用戶端請求的,WCF确實能夠勝任,因為其本身已經提供了很好的解決機制。

      關于并發用戶端請求,WCF通過設定最大并發連接配接數目、會話數目、并發服務執行個體數目來進行處理。

    我測試的1000個并發請求,是可以順利相應的。而且的測試機器是普通的PC機器,XP pro系統。

     涉及到大量請求的時候,可以考慮使用WCF的 ServiceThrottlingBehavior 屬性。

    名稱 說明
    wcf 并發 http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d 大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 
    MaxConcurrentCalls 擷取或設定一個值,該值指定整個 ServiceHost 中正在處理的最多消息數。
    wcf 并發 http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d 大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 
    MaxConcurrentInstances 擷取或設定一個值,該值指定服務中可以一次執行的最多 InstanceContext 對象數。
    wcf 并發 http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d 大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 
    MaxConcurrentSessions 擷取或設定一個指定 ServiceHost 對象可一次接受的最多會話數的值。

      這裡我們設定一下服務的限流行為就可以了。具體如下:

    serviceBehaviors >

             < behavior name = " WCFService.WCFServiceBehavior " >

               < serviceTimeouts transactionTimeout = " 00:01:00 " />

               < serviceMetadata httpGetEnabled = " true "   />

               < serviceDebug includeExceptionDetailInFaults = " false "   />

               < serviceThrottling maxConcurrentCalls = " 1000 "  maxConcurrentInstances = " 1000 "  maxConcurrentSessions = " 1000 " />-->

             </ behavior >

           </ serviceBehaviors >    

       這裡1000可以修改,根據你的實際WCF服務需求量。服務激活類型和執行個體調用方式。然後進行調整。修改完畢以後,重新啟動服務,基本就正常了。

    這個是三個屬性的測試例子。

    于此問題本質上相關的問題很多,中文和英文論壇都有人讨論過。一下是這寫問題的連接配接:

    http://social.microsoft.com/Forums/zh-CN/wcfzhchs/thread/155c87f0-a7d4-4c4e-b40b-6292d8731822

    http://social.microsoft.com/Forums/zh-CN/wcf/thread/3a89a21d-76ca-4941-8cbe-c89afb5d163b

    WCF分布式開發常見錯誤(20):TimeoutException was unhandled 

      以上之時WCF提供給我們的可以使用的配置屬性。你要想了解更深入的WCF底層線程模型和如何處理大量的用戶端資料互動請求。可以了解一下

    IOCP在WCF裡的應用。

      這個前段時間冰紅茶在我的部落格裡提問,我花兩周時間查找資料找出這個問題的答案。

    你可以參考一下。這個才是WCF能應付大量并發請求的本質所在。上面隻是一些WCF的配置屬性,資料應用的範疇。

    WCF熱門問題程式設計示例(3):WCF是否使用或者支援IOCP(IO完成端口) 

    經典技術文章翻譯(2)Does WCF use or Supports IOCP?WCF是否支援或者使用了IOCP完成端口。

       應該很有參考價值。

    希望對你的學習有幫助~

    Frank Xu Lei--謙卑若愚,好學若饑 

    專注于.NET平台下分布式應用系統開發和企業應用系統內建 

    Focus on Distributed Applications Development and EAI based on .NET 

    歡迎通路老徐的中文技術部落格: Welcome to My Chinese Technical Blog 

    歡迎通路微軟WCF中文技術論壇: Welcome to Microsoft Chinese WCF Forum 

    歡迎通路微軟WCF英文技術論壇: Welcome to Microsoft English WCF Forum

    • Als antwoord gemarkeerd door victoryliwenbo vrijdag 7 augustus 2009 6:07
    • wcf 并發 http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d 大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 
      Reageren  
    • wcf 并發 http://social.microsoft.com/Forums/nl-NL/wcfzhchs/thread/3e79037b-afb5-402c-86d9-292779cd870d 大量用戶端應用程式同時調用一個伺服器上的服務,會不會使該服務承受不了?怎麼解決? 
      Citeren

Mijn forumkoppelingen

  • Aanmelden bij Forums
  • Forums Home
  • Door forumgebruikers bladeren

Statistieken

  • Gestart: 7-8-2009
  • Laatste reactie: 7-8-2009
  • Als nuttig beoordeeld: 1
  • Reacties: 1
  • Weergaven: 4.090

Hulp nodig bij Forums? (veelgestelde vragen)   © 2012 Microsoft Corporation. Alle rechten voorbehouden.