非管理员用户的客户端无法使用net.pipe与服务进行通信

时间:2012-08-22 11:57:53

标签: wcf named-pipes netnamedpipebinding

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

我读过你不能在不同用户之间使用net.pipe进行通信。

有没有办法通过它?

1 个答案:

答案 0 :(得分:6)

  

我已经读过你无法使用net.pipe进行通信   不同的用户。

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

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

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

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

在大多数情况下,我遇到过这是一个问题,解决方法是始终在Windows服务中托管WCF服务,必要时使用双工合同在交互会话期间撤消客户端和服务器角色。

另见: