如何使用 WCF 命名管道绑定跨越会话边界?
Windows 7 有一个会话 0(服务在其中运行)以及与用户交互的其他会话。
在会话 0 中运行的 WCF 客户端无法看到会话 1 中公开的管道,除非:
- 设置
SeCreateGlobalPrivilege
- 对我来说不是一个选项 - 显示作为会话 0 用户运行但对会话 1 用户可见的 UI - 当服务使用
CreateProcessAsUser
启动 UI 时,有可能 - 使用其他绑定,例如
netTcpBinding
还有其他解决方案吗?
Windows 7 has a Session 0, where the services run, and the other sessions that interact with the users.
WCF clients running in Session 0 can't see pipes exposed in session 1 unless::
- Set the
SeCreateGlobalPrivilege
- not an option for me - Show the UI running as a session 0 user but visible to the session 1 user - it's possible when the service starts the UI using
CreateProcessAsUser
- Use another binding, such as
netTcpBinding
Any other solution?
This question is also featured on a Microsoft forum post
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
硬化……它也让我感动。我找不到修复方法,不得不更改为
TcpBinding
。Hardening... it got me too. I could not find a fix and had to change to
TcpBinding
.我正在考虑另一个解决方案:反转角色并使用 CallbackContract。
I was thinking in another solution: Inverting the roles and using a
CallbackContract
.