託管在控制檯應用程序中的WCF服務可處理多少負載?它可以像在IIS上託管的WCF一樣處理傳入請求嗎?託管在控制檯應用程序中的WCF服務
附加說明: 可以同時請求嗎?
我有一個WCF服務託管在控制檯應用程序。我從Web應用程序中調用此WCF服務。該Web應用可能同時有數百個請求。
我模擬了一個請求的負載,但我無法確定託管WCF服務的控制檯應用程序實際上是同時還是順序地應答它們。
託管在控制檯應用程序中的WCF服務可處理多少負載?它可以像在IIS上託管的WCF一樣處理傳入請求嗎?託管在控制檯應用程序中的WCF服務
附加說明: 可以同時請求嗎?
我有一個WCF服務託管在控制檯應用程序。我從Web應用程序中調用此WCF服務。該Web應用可能同時有數百個請求。
我模擬了一個請求的負載,但我無法確定託管WCF服務的控制檯應用程序實際上是同時還是順序地應答它們。
這與WCF服務的託管位置無關。這一切都取決於綁定,端點,端點行爲和服務行爲設置,以及最後但並非最不重要的一點,就是您爲服務設置(通過屬性)實例化模式和併發類型。
這些設置由ServiceHost
實例接管。即使它在控制檯應用程序中運行,應用程序本身也只是ServiceHost
的一個容器,它根據您提供的設置爲您的WCF服務創建運行時環境。
您感興趣的內容請參閱here(併發和限制)。另外,一些非常extensive on WCF instance modes。
出於性能方面的原因,我建議您使用單例服務,您可以通過InstanceContextMode指定。如果您有數百個請求進入,如果爲每個請求創建了一個服務實例,那麼它對併發沒有任何好處。您必須通過檢查您的所有服務操作是否線程安全來分析您的情況是否可能存在單例。
看來單身人士在我的情況下是不可能的,因爲很多應用程序會提出很多請求/分鐘。 –
@KavehShahbazian:有多少請求無關緊要。可能是數千次/秒。只要您不在服務中保留任何狀態或某種自定義會話(例如,某些數據被所有請求更改並讀取的靜態集合),您都可以。 –
託管在控制檯應用程序句柄中的WCF服務可以承受多少負載?
儘可能多的您的計算機可以自我託管的WCF服務。
主機可以是一個控制檯應用程序或Windows服務,無所謂,從加載的角度來看它們是相同的。
您可以使用類似於loadui的方式加載測試服務。您還可以配置一個wcf來同時處理請求。一個快速的谷歌應該讓你的方式。 – CSharpened
@abatishchev感謝您的編輯。 –