我有一个HttpModule,它可以收集每个对ASP.NET站点的Http请求的基本信息。该模块必须将此信息发送到外部程序( windows服务或控制台应用程序)进行进一步处理。我目前正在使用一个带有命名管道的WCF服务(带有一个ChannelFactory)。我不得不说,实际上,这一切似乎都运行得很好,很完美。
我对HttpModule的主要要求是卓越的性能和可靠性。有没有更好的方法来进行这种进程间的通信,特别是在HttpModule内(在高负载的站点上)。是否存在任何潜在的性能问题/瓶颈?:)
你认为如何?任何关于这个主题的想法或参考资料都将不胜感激!
提前谢谢你!
发布于 2011-04-28 00:23:59
我假设Http模块和数据服务之间的通信总是在同一台机器上。
性能:您不太可能胜过命名管道,因为它们使用共享内存进行传输。WCF增加了它的成帧协议和编码方案的一些开销-如果你想避免WCF开销,你可以直接使用System.IO.Pipes类型在管道上传递你的数据,但对于许多应用程序来说,这不值得额外的努力。如果你坚持使用WCF,set the transport security mode to None as explained here。
可靠性:命名管道是由操作系统内核管理的对象,WCF在它们上面绑定了一个相当薄的包装器,特别是在禁用传输安全性的情况下:可靠性很高。
https://stackoverflow.com/questions/5806083
复制相似问题