NamedPipeServerStream
全部标签 我正在尝试使用命名管道在Windows服务和WPF应用程序之间进行通信,两者都是用VB.Net编写的。Windows服务一直在运行。但是,在运行WPF应用程序几个小时后,将引发StackOverflowException。WPF应用程序中的PipeServerThread()是唯一在异常发生时在托管堆栈中重复调用的函数(我使用WinDbg对此进行了追踪)。服务包含NamedPipeClientStream,应用包含NamedPipeServerStream。当客户端和服务器通信时,服务器在经过几次检查后读取最终的客户端响应,然后将客户端字符串传递给代码中其他地方的函数。管道服务器随后被
我有一个Windows服务,它通过命名管道与一个图形用户界面应用程序通信。因此,我有一个正在运行的线程正在等待应用程序连接,如果我这样做一次,它运行良好。但是,如果线程正在创建命名管道流服务器的新实例,则已经建立的连接将中断,并且我会收到所有实例繁忙的异常。抛出异常的代码片段是这样的:classPipeStreamWriter:TextWriter{staticNamedPipeServerStream_output=null;staticStreamWriter_writer=null;staticThreadmyThread=null;publicPipeStreamWriter(
我是第一次尝试使用命名管道。在MS文档中找到here,它指出:EndWaitForConnectionmustbecalledexactlyonceforeverycalltoBeginWaitForConnection.所以我想成为一名优秀的小程序员并遵循文档,但是EndWaitForConnection()在我使用它时会无限期地挂起。所以我将我的代码精简到最低限度,看看我是否可以隔离问题但没有骰子。我从我编写的类(class)中提取了以下代码。我对其进行了修改,使其开始等待管道连接,然后立即尝试停止等待该管道连接:privatevoidWaitForConnectionCallBa
你好我想使用.NET3.5中新增的NamedPipeServerStream进行命名管道通信。我想写多线程管道服务器。它是默认处理的还是我应该为此编写代码。我的管道服务器应该一次处理多个请求任何解决方案或代码? 最佳答案 您可以通过重复创建NamedPipeServerStream并等待一个连接,然后为该NamedPipeServerStream实例生成一个线程来编写多线程管道服务器。根据下面链接的.NETMSDN文档,您只能有254个并发客户端。对于Win32API,虽然您可以传递一个特殊值以获得基于系统资源的无限制。如下所述,M
我有连接到NamedPipeServerStream的NamedPipeClientStream。他们交换了一些消息,然后NamedPipeClientStream关闭,而NamedPipeServerStream重新创建并继续监听客户端管道。(我无法制作一个工作的异步服务器管道,所以这是某种狗钉)在我的客户端从正常用户session启动的流期间,客户端-服务器交互工作正常。但在Win7和win2008服务器上,会出现客户端管道从session0启动的情况。发生这种情况时,我在客户端流中出错:"Accesstothepathisdenied"问题是什么?如何避免?抱歉,我无法告诉您
我想通过管道将数据从C#应用程序发送到C++应用程序。这是我所做的:这是C++客户端:#include"stdafx.h"#include#includeint_tmain(intargc,_TCHAR*argv[]){HANDLEhFile;BOOLflg;DWORDdwWrite;charszPipeUpdate[200];hFile=CreateFile(L"\\\\.\\pipe\\BvrPipe",GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);strcpy(szPipeUpdate,"DatafromNamedPipeclientfor