Windows 10 上的每个人都可以使用 NetNamedPipeBinding 访问 WCF 主机

Making WCF Host with NetNamedPipeBinding reachable from everyone on Windows 10

我有两个应用程序通过 NetNamedPipeBinding 上的 WCF 协议进行通信。一个是 SYSTEM 下的服务(“S”)运行ning,另一个是应用程序(“A”)。 “A”创建 WCF 服务。

当“A”运行 具有管理员权限时,一切正常。但是当 运行 在受限用户下时,“A”可以创建“S”无法访问的 WCF 服务。 错误是:

System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at net.pipe://app/results that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. ---> System.IO.PipeException: The pipe endpoint 'net.pipe://app/results' could not be found on your local machine. 

这个想法是每个用户都可以访问这个 WCF 服务(Everyone 凭据)。 可以用 NetNamedPipeBinding 来完成吗?最好在代码中进行整个配置,而不是在配置文件中。

        var binding = new NetNamedPipeBinding(NetNamedPipeSecurityMode.None);
        var baseAddress = new Uri(url);
        var serviceHost = new ServiceHost(implementor);
        serviceHost.AddServiceEndpoint(typeof(IImplementor), binding, baseAddress);
        serviceHost.Open();

如果密码相同但接入用户不同,则说明非管理员用户无法接入服务

也许你可以试试这个例子below.It还是不行,你可以提交bug文件给官方

https://docs.microsoft.com/en-us/dotnet/api/system.servicemodel.netnamedpipebinding?view=netframework-4.8

谢谢。