除了審查有關的WCF服務託管的一般信息,作爲一個新的WCF服務開發人員,你需要考慮以下服務方面:
實例化
的實例化行爲(通過使用ServiceBehaviorAttribute.InstanceContextMode
屬性設置)控制如何創建InstanceContext
以響應傳入消息。
- PerCall:爲每個客戶端請求
- PerSession創建一個新的實例:爲每個新客戶端創建一個新的實例
- 單:單個實例處理所有客戶端請求
每有優點和缺點,所以您需要爲您的服務方案選擇適當的行爲。
併發
併發是在任一個時刻活性在的InstanceContext線程的數量的控制。這是通過使用ServiceBehaviorAttribute.ConcurrencyMode
和ConcurrencyMode
枚舉來控制的。
- 單:一個線程處理的實例上下文同時消息
- 多:每個服務實例可以有多個線程同時處理消息。
- 可重入:每個服務實例一次處理一條消息,但接受重入操作調用。
節流
的ServiceThrottlingBehavior
類暴露,你可以用它來限制如何在應用程序級別創建許多實例或會話的性能。使用此行爲,可以微調Windows Communication Foundation(WCF)應用程序的性能。
<serviceBehaviors>
<behavior name="ThrottledService">
<serviceThrottling
maxConcurrentCalls="n"
maxConcurrentInstances="n"
maxConcurrentSessions="n" />
</behavior>
</serviceBehaviors>
參考文獻: https://msdn.microsoft.com/en-us/library/ms731193%28v=vs.110%29.aspx https://msdn.microsoft.com/en-us/library/vstudio/ms735114%28v=vs.100%29.aspx
那麼,爲什麼不IIS下,你的團隊可以訪問的生產服務器上運行的服務?目前如何部署? – 2015-03-18 23:40:20
您是否曾嘗試將WCF應用程序作爲服務運行而不是手動運行? WCF端是否從專用服務器運行?隊友們,他們正在運行他們自己的WCF應用程序版本嗎? – 2015-03-19 00:16:12
您將不得不在IIS上或作爲Windows Service託管您的WCF服務。請參閱此處瞭解詳細信息https://msdn.microsoft.com/zh-cn/library/bb332338.aspx – 2015-03-19 00:17:03