2012-02-16 131 views
2

我使用被添加到我的解決方案作爲服務引用第三方.NET 4 WCF服務。有沒有辦法配置請求,以便我的服務不是Ddos:第三方服務?WCF請求限制

我所知道的ServiceThrottling在下面的參數可以控制:

- MaxConcurrentCalls 
- MaxConcurrentSessions 
- MaxConcurrentInstances 

我的應用程序是單線程的,因此上面的參數不會有任何影響。

我想限制每個時間段號碼的請求。也許通過在每個請求之間暫停。我明顯可以爲服務編寫一個適配器並自己處理,但第三方服務包含200個方法,因此需要大量代碼。

是否有可能通過配置扼殺這種方式的要求?

回答

2

你的問題已經是老周的couply,所以我不知道你是否還需要它。至少這是值得一試的......另外,如果我誤解了你的情況,請糾正我。

據我瞭解,你想限制自己的服務,只能調用第三方服務一個請求後,另一個。我不知道這個可配置的解決方案。但是,正如你所說,你有可能實現你自己的解決方案,我會建議一種不同的方法。

您可能會將您的請求放入隊列,然後一次處理一個隊列條目。 這可以通過多種方式來實現,具體取決於您必須使用的環境。

有兩種解決方案,來我的心。

一個簡單的方法可能是在您自己的服務中使用內存中的隊列,每個入口調用第三方一次,並使用某種locking。但這可能需要仔細考慮以避免醜陋的僵局。

更復雜的,但可能是更好的可擴展解決方案: 您可以configure your service寫入到Microsoft消息隊列(MSMQ)基礎設施和add another service是處理這些順序信息給第三方服務。

+0

感謝您的回覆!很好的答案!我已經結束了第三方服務的包裝。我不需要使用隊列,但我喜歡這個主意! – Marcus 2012-03-27 08:55:00