最近我一直在WCF的前端,特別是託管在IIS(不是自己託管)做了很多工作。WCF/IIS超時是否需要重寫?
這只是我,還是有人有問題微調超時值。我將首先提到您需要從拍子中微調的超時時間。
看看下面結合端點值,所有以某種方式或其他涉及超時:
- closeTimeout = 「00:01:00」
- openTimeout =「00:01: 00"
- receiveTimeout = 「00:10:00」
- 的SendTimeout = 「00:01:00」
- MAXBUFFERSIZE = 「999」
- maxBufferPoolSize = 「524288」
- maxReceivedMessageSize = 「999」
- readerQuotas MAXDEPTH = 「32」
- readerQuotas maxStringContentLength = 「8192」
- readerQuotas的MaxArrayLength = 「16384」
- readerQuotas maxBytesPerRead = 「4096」
- readerQuotas maxNameTableCharCount = 「16384」
這些只是客戶端端點配置值,我們甚至還沒有開始,現在爲了讓服務在II中運行S,還需要設置服務器端綁定,它提供與客戶端相同級別的複雜性。
一旦完成,在長時間調用WCF服務期間配置IIS也很重要,否則最終會導致主線程中止。
IIS需要保持禁用狀態,應用程序池還帶有大量的超時值App Pool,這是一個詳細的主題。除此之外,還有另外7個超時值需要特別微調,否則會期望複雜的WCF調用失敗。
對不起,但其他人有沒有聞到老鼠?
我的理解是,基本上(大多數)這些超時值是因信任問題而存在的。我相信,我的意思是「我們不相信服務在合理的時間內完成他們應該做的事情」。 SOA可靠通信的每個方面都是事先不信任的,正因爲如此,我們似乎需要大量的捕獲網絡(超時值)來確保一定程度的可管理性。讓我們面對它,如果我們信任系統及時給出響應,爲什麼需要設置超時值?
我所有這一切的問題是,坦率地說,它回到前面,如果我在我的應用程序中有5個系統通常是可信的並且通常會給出及時的響應。我很沮喪,我仍然需要經歷冗長的定義這些邊界的過程,因爲OOB,WCF/IIS託管失敗。
我發現WCF技術是虛僞的,在網絡演員和營銷演示期間,通常總是會提到WCF允許從實現中更好地抽象,允許開發人員更容易地編寫和部署,並通過「簡單」定義端點能夠專注於業務邏輯,而不是強調架構。在實踐中我發現沒有什麼比事實更能說明問題。有了WCF,您需要深入瞭解服務運行的細節,而且您需要手動進行微調,與ASMX服務中通常部署時沒有太多爭論的情況不同,而且只需要一些IIS微調,甚至很少。
所以我提出的問題是:它只是我還是你們中的任何一個人都有同樣的挫折和觀察?歡迎所有評論!
你知道嗎 - 對那個標記問題的人來說,很明顯MS並不認爲這是一個壞主意,因此爲什麼我修復了第4版中的挫敗感...... – 2010-03-07 01:31:26
IIS託管總是超時。我正在認真考慮將我的所有服務移至自行託管... – 2010-08-05 14:31:30