【问题标题】:Client on non-admin user can't communicate using net.pipe with services非管理员用户的客户端无法使用 net.pipe 与服务进行通信
【发布时间】:2012-08-17 20:19:15
【问题描述】:

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

我了解到您无法在不同用户之间使用 net.pipe 进行通信。

有没有办法绕过它?

【问题讨论】:

    标签: wcf named-pipes netnamedpipebinding


    【解决方案1】:

    我了解到您无法使用 net.pipe 进行通信 不同的用户。

    这通常不是真的。以下是我认为您所指内容的摘要:

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

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

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

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

    另见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 1970-01-01
      • 2011-04-28
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      相关资源
      最近更新 更多