2011-04-27 239 views
3

我有一個HttpModule,它收集每個到ASP.NET網站的Http請求的基本信息。該模塊必須將此信息發送到外部程序(Windows服務或控制檯應用程序)。我目前正在使用具有命名管道(帶有ChannelFactory)的WCF服務。我不得不說,這一切似乎都很好,實際上是完美的。在ASP.NET中使用「命名管道」HttpModule

我對HttpModule的主要要求是卓越的性能和可靠性。 有沒有更好的方式來進行這樣的進程間通信,尤其是在HttpModule內(在高負載的站點上)。是否有任何潛在的性能問題/瓶頸? :)

你覺得呢?任何想法或參考一些閱讀這個主題將不勝感激!

預先感謝您!

回答

2

我假設Http模塊和數據服務之間的通信總是在同一臺機器上。

性能:您不太可能擊敗命名管道,因爲它們使用共享內存進行傳輸。 WCF通過其框架協議和編碼方案增加了一點開銷 - 如果您想避免WCF開銷,您可以直接使用System.IO.Pipes類型通過管道將數據傳遞給管道,但對於許多應用程序來說,這是不值得的努力。如果你堅持使用WCF,set the transport security mode to None as explained here

可靠性:命名管道是由OS內核管理的對象,WCF綁定了一個相當薄的包裝器,特別是傳輸安全被禁用時:可靠性很高。