You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows服务中NamedPipeClientStream连接服务端时遇访问拒绝异常

Named Pipes进程间通信权限异常问题

问题现象

使用Named Pipes实现进程间通信时,控制台客户端与控制台服务端通信正常;但将服务端迁移至Windows服务后,客户端控制台应用的NamedPipeClientStream尝试连接时抛出UnauthorizedAccessException,错误提示为Access to the path is denied.

两端初始化代码

客户端控制台应用

_clientStream = new NamedPipeClientStream(".", pipeName,
                                PipeDirection.InOut, PipeOptions.None,
                                TokenImpersonationLevel.Impersonation);

服务端Windows服务

_server = new NamedPipeServerStream(pipeName, 
                                PipeDirection.InOut, maxNumberOfServerInstances: 1);

问题原因与解决方案

  • 这是至少到.NET 5为止的已知问题:Windows服务端的命名管道需要配置额外安全权限,但.NET Core及更高版本未提供对应构造函数来直接设置;事后调用NamedPipeServerStream.SetAccessControl添加权限无法生效。
  • 曾有第三方NuGet包可解决该问题,但目前与.NET 8不兼容。
  • 临时可行方案:改用.NET Framework实现Windows服务端。

内容的提问来源于stack exchange,提问作者Dabblernl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:27:08