【问题标题】:Using "named pipes" in ASP.NET HttpModule在 ASP.NET HttpModule 中使用“命名管道”
【发布时间】:2011-08-13 22:43:51
【问题描述】:

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

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

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

提前谢谢你!

【问题讨论】:

    标签: wcf named-pipes httpmodule inter-process-communicat


    【解决方案1】:

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

    性能:您不太可能击败命名管道,因为它们使用共享内存进行传输。 WCF 的帧协议和编码方案增加了一点开销——如果你想避免 WCF 开销,你可以直接使用 System.IO.Pipes 类型通过管道传递原始数据,但对于许多应用程序来说,这不值得额外努力。如果你坚持使用 WCF,set the transport security mode to None as explained here

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      相关资源
      最近更新 更多