3

我有一个 HttpModule,它收集对 ASP.NET 站点的每个 Http 请求的一些基本信息。该模块必须将此信息发送到外部程序(Windows 服务或控制台应用程序)以进行进一步处理。我目前正在使用带有命名管道(带有 ChannelFactory)的 WCF 服务。我不得不说这一切似乎都很好,完美地,实际上。

我对 HttpModule 的主要要求是卓越的性能和可靠性。有没有更好的方法来进行这种进程间通信,尤其是在 HttpModule 中(在高负载站点上)。是否存在任何潜在的性能问题/瓶颈?:)

你怎么看?任何有关此主题的阅读的想法或参考将不胜感激!

先感谢您!

4

1 回答 1

2

我假设 Http Module 和数据服务之间的通信总是在同一台机器上。

性能:您不太可能击败命名管道,因为它们使用共享内存进行传输。WCF 的帧协议和编码方案增加了一点开销——如果你想避免 WCF 开销,你可以直接使用 System.IO.Pipes 类型通过管道传递原始数据,但对于许多应用程序来说,这不值得额外努力。如果您坚持使用 WCF,请将传输安全模式设置为无,如此处所述

可靠性:命名管道是由操作系统内核管理的对象,WCF 在它们上绑定了一个相当薄的包装器,特别是在禁用传输安全性的情况下:可靠性很高。

于 2011-04-27T16:23:59.197 回答