使用“命名管道”在 ASP.NET HttpModule 中

发布于 2024-11-03 19:04:03 字数 322 浏览 3 评论 0原文

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

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

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

先感谢您!

I have an HttpModule that gathers some basic information on every Http request to an ASP.NET site. The module has to send this information for further processing to an external program (a windows service or a console app.) I am currently using a WCF service with named pipes (with a ChannelFactory). I have to say that it all seems to work nicely, perfectly, actually.

My main requirement for the HttpModule is superior performance and reliability.
Is there a better way of doing such inter-process communication, especially within an HttpModule (on a highly loaded site). Are there any potential performance issues/bottlenecks ? :)

What do you think? any ideas or references for some reading on this topic would be highly appreciated!

Thank you in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空名 2024-11-10 19:04:03

我假设 Http 模块和数据服务之间的通信始终在同一台计算机上。

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

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

I'm assuming that the communication between Http Module and the data service is always on the same machine.

Performance: you're unlikely to beat Named Pipes, as they use shared memory for the transport. WCF adds a little overhead with its framing protocol and encoding scheme - you could pass your data raw over a pipe using the System.IO.Pipes types directly if you wanted to avoid the WCF overhead, but for many applications this is not worth the extra effort. If you stick with WCF, set the transport security mode to None as explained here.

Reliability: Named Pipes are objects managed by the OS kernel, and the WCF binding a fairly thin wrapper over them, particularly with transport security disabled: reliability is high.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文