2009-09-06 111 views
4

WCF對它有很多限制,以防止DoS攻擊和其他開發人員的無腦操作。這些限制是什麼?他們如何被重寫?WCF的內部限制是什麼WCF

具體來說,如果我試圖在短時間內將大量消息發送到各種不同的客戶端,那麼它們可能會導致消息緩慢發送的內部WCF限制是什麼?

PS:這個問題是我的previous question短得多的版本,沒有得到多少關注。

編輯 我已經回答了original question。問題是我的異步調用正在變成同步調用。

+1

看着你以前的問題,我想你可能會跳到結論。將其簡化爲一個簡單的例子,並查看行爲是否重現。 _然後_調查限制。你假設你所看到的行爲是一個限制問題,而且可能不是。 – 2009-09-06 23:10:27

+0

完全同意,但是我的公司不會對生產微不足道的/確定性版本的時間感到高興。調整配置選項非常簡單!我懷疑我很快就會啓用跟蹤。 – ligos 2009-09-07 00:00:48

回答

4

有太多的變數可能會涉及到,我覺得這個問題太籠統了,無法回答。你可能想看看一些事情是:

的數量,但因爲安全是一個非常複雜的話題和重要的是要正確的(它只是和最薄弱的環節一樣強大),WCF有很多不同的選項,配置屬性等等......得到一些書籍並真正得到intrac的支持是很明智的IES。

我個人可以推薦Programming WCF 2nd editionLearning WCF: A hands-on guide


讀你剛纔的問題我也建議你給跟蹤一試之後。 WCF記錄了很多內部發生的事情,以及何時發生了某些限制。有關如何配置它的更多信息,請參見http://msdn.microsoft.com/en-us/library/ms733025.aspx。特別注意關於XmlWriterTraceListener如何不是線程安全的部分,並且可能會阻止執行流程,並嚴重影響性能(而不是您在調試性能時需要的)以及如何克服此問題。

最後,我想約翰桑德斯他的建議是非常有效的,如果你確實從一個簡單的例子開始,並沒有遇到這個問題,那麼我建議你以小增量重新添加你當前的功能(或者二進制排序類型時尚),看看是什麼導致了這個問題。

+0

對不起(故意)模糊的問題。我確保我已經首先查看了所有配置選項。我懷疑我很快就會啓用跟蹤。 – ligos 2009-09-07 00:05:05

0

這是我被困住的一個人,花了幾個小時弄清楚。當您將IIS作爲Web服務器時,會有ASP.net設置,這會限制最大請求大小。因此,wcf服務將無法接受超過此大小的請求。在web.config中,你需要(默認爲32兆)添加/修改下面的設置 -

<system.web> 
    <httpRuntime maxRequestLength="32767"/> 
</system.web> 

當然,你要認識到可能DOS的問題,同時增加此限制。