繁体   English   中英

我可以在托盘应用程序中托管WCF服务吗

[英]Can I host a wcf service in a tray app

我有一个小托盘应用程序,该应用程序应通知用户有关在本地系统帐户下运行的其他进程的执行的开始和停止。 使用本地系统帐户运行的进程由另一个服务(不是我所有)调用。 “我的服务流程”始终只运行很短的时间。 因此,我无法实现wcf回调处理。 我的机器上一切正常。 但是它不在客户端运行。

在客户端发生的问题(异常)类似于“没有端点在net.pipe上监听...”。

但是托盘正在运行。 我创建了一个测试应用程序(控制台)以与托盘通信。 这很好。 如果我使用psexec -I ...启动此测试应用程序,以使用本地系统帐户运行该应用程序,则该应用程序也正在运行。 我不知道可能的原因,所以有两个问题:

  1. 是否“允许”在托盘应用程序中托管wcf服务(在用户上下文中运行)并由在本地系统帐户中运行的进程调用它?
  2. 如果是,是否有可能阻止该功能的策略/安全设置?

我唯一可以考虑的解决方法是创建一个可以用作某种代理的帮手服务(通过托盘与回调接口连接,该接口可以供其他进程使用)。 但这似乎是很大的开销...

答案是,这是不可能的。

原因在这里进行了解释: 通过命名管道从Windows服务(会话#0)连接到桌面应用程序(会话#1)

看来我的测试成功了,因为psexec仍在会话#1中运行。 我的实现现在正在使用上述解决方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM