Wcf 非管理员用户上的客户端可以';t使用net.pipe与服务进行通信

Wcf 非管理员用户上的客户端可以';t使用net.pipe与服务进行通信,wcf,named-pipes,netnamedpipebinding,Wcf,Named Pipes,Netnamedpipebinding,我有一个客户端应用程序,它使用net.pipe协议托管WCF服务。客户端无法与在admin用户下运行的其他WCF服务通信 我已经了解到,您不能在不同的用户之间使用net.pipe进行通信 有办法绕过它吗 我已经读到,您不能使用net.pipe在 不同的用户 一般来说,情况并非如此。以下是我认为您所指内容的摘要: 如果您运行的操作系统早于Windows Vista,则没有问题:任何进程都应该能够承载任何其他本地进程可以访问的WCF net.pipe服务 如果您在Windows Vista或更高版本

我有一个客户端应用程序,它使用net.pipe协议托管WCF服务。客户端无法与在admin用户下运行的其他WCF服务通信

我已经了解到,您不能在不同的用户之间使用net.pipe进行通信

有办法绕过它吗

我已经读到,您不能使用net.pipe在 不同的用户

一般来说,情况并非如此。以下是我认为您所指内容的摘要:

如果您运行的操作系统早于Windows Vista,则没有问题:任何进程都应该能够承载任何其他本地进程可以访问的WCF net.pipe服务

如果您在Windows Vista或更高版本上运行,则只有在同一登录会话(例如,在同一交互用户会话中)中运行的进程才能访问WCF net.pipe服务,除非托管WCF服务的进程使用提升的特权SeCreateGlobalPrivilege运行

Windows服务在其自己的登录会话中运行,并具有SeCreateGlobalPrivilege权限,因此在同一台计算机上的其他登录会话中的进程可以看到自托管和IIS托管的WCF net.pipe服务

在我遇到的大多数情况下,这是一个问题,解决方法是始终将WCF服务托管在Windows服务中,如果需要在交互会话期间反转客户端和服务器角色,则使用双工契约

另见:

我已经读到,您不能使用net.pipe在 不同的用户

一般来说,情况并非如此。以下是我认为您所指内容的摘要:

如果您运行的操作系统早于Windows Vista,则没有问题:任何进程都应该能够承载任何其他本地进程可以访问的WCF net.pipe服务

如果您在Windows Vista或更高版本上运行,则只有在同一登录会话(例如,在同一交互用户会话中)中运行的进程才能访问WCF net.pipe服务,除非托管WCF服务的进程使用提升的特权SeCreateGlobalPrivilege运行

Windows服务在其自己的登录会话中运行,并具有SeCreateGlobalPrivilege权限,因此在同一台计算机上的其他登录会话中的进程可以看到自托管和IIS托管的WCF net.pipe服务

在我遇到的大多数情况下,这是一个问题,解决方法是始终将WCF服务托管在Windows服务中,如果需要在交互会话期间反转客户端和服务器角色,则使用双工契约

另见: