Tag: named pipes

NamedPipeServerStream和NamedPipeServerClient上的示例需要PipeDirection.InOut

我正在寻找一个很好的示例,其中NamedPipeServerStream和NamedPipeServerClient可以相互发送消息(当PipeDirection = PipeDirection.InOut时)。 现在我只发现了这篇msdn文章 。 但它只描述了服务器。 有人知道连接到这台服务器的客户端应该如何吗?

如何在命名管道(c#)上进行非等待写入?

我正在使用.net 3.5命名管道,我的服务器端是: serverPipeStream = new NamedPipeServerStream(“myPipe”, PipeDirection.InOut, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous); 当我用BinaryWriter写一些数据时,write()调用本身不会返回,直到客户端在其NamedPipeClientStream上调用了read()。 BinaryWriter是: writer = new BinaryWriter(serverPipeStream); 我知道NamedPipeServerStream提供了BeginRead / BeginWrite但是从我收集的内容来看,命名管道应该允许streamwriters在它们之上执行(如许多微软给出的例子所示)。 那么如何让我的write()到命名管道不等待? 在此先感谢您的帮助。

进程间通信选项

我需要在一个应用程序内订阅其他应用程序公开的事件。 我注意到许多人认为使用WCF命名管道是最佳实践。 我是对的,如果我选择WCF命名管道,我将不得不使用IIS? 顺便说一句,我一般有哪些选择?

如何降低WCF命名管道的完整性

我有一个用C#编写的Internet Explorer加载项,它通过WCF命名管道与.NET桌面应用程序进行通信。 桌面应用程序为netNamedPipeBinding创建ServiceHost,并且IE加载项的每个实例都创建一个ChannelFactory以与应用程序通信。 在Windows XP下一切正常,但在Windows 7的IE保护模式下会抛出exception。 System.ServiceModel.CommunicationException:无法连接到端点’net.pipe://localhost/MyApp.MyID’。 —> System.IO.PipeException:’\。\ pipe … guid …’存在管道端点,但连接失败:访问被拒绝。 (5,0×5) 在保护模式下运行加载项是我必须支持的方案。 我的理解是,如果我降低命名管道的完整性级别,那么我的IE加载项将被允许通过它进行通信。 我的问题是如何做到这一点。 我有设置使用WCF的东西,并希望保持这种方式。 我可以让WCF创建具有较低完整性级别的命名管道吗? 我写了什么代码才能实现这一目标?

WCF – 最快的进程间通信

A具有Web可访问(通过basicHttpBinding)WCF服务,我也希望从同一台机器上的其他.NET服务访问,并尽可能提高性能。 我知道netNamedPipeBinding是理想的,但是想知道什么是最好的配置,我甚至只会与其他.NET进程通信。 例如,我不一定使用像SOAP这样的编码,因为这可能太笨重,而且我不需要与.NET客户端以外的任何其他客户端兼容。 我也认为我不需要任何安全保障。 什么是用于此目的的最佳绑定配置(或任何其他配置)

可以连接到命名管道的客户端数量

假设服务器创建了命名管道“myTestPipe”。 有多少客户可以连接到“myTestPipe”? 从我在网上看到的,似乎只有一个客户可以,但想确保。 如果只有一个,那么最好使用阻塞WaitForConnection()而不是Asunchronous方法BeginWaitForConnection(),因为服务器会等到客户端进程连接然后进行通信?! (无需担心其他客户端连接)