我可以从WCF打开客户端的Windows资源管理器吗?

时间:2014-06-11 14:44:51

标签: c# asp.net-mvc wcf asp.net-mvc-4

早上好, 我有以下场景:我有两个项目的解决方案 - 第一个项目是MVC WebClient,第二个项目是WCF服务。我希望通过WCF在特定位置打开 Windows资源管理器。我知道纯客户端是不可能的,所以我在考虑WCF是否可以做到这一点。

完整方案是:用户点击按钮,然后将打开Windows资源管理器。

我已尝试在我的本地计算机上执行此操作

Process.Start(path); 

它可以工作,但如果我将它托管在IIS上呢?

  1. 会起作用吗?
  2. 它会打开客户端的资源管理器或服务器的资源管理器吗?
  3. 如果前两个步骤可行,我是否也需要IIS上的主机WCF服务,或者服务引用的MVC客户端是否足够?
  4. 如果这种情况不起作用,任何人都可以帮助解决这个问题(如果有的话)吗?

    非常感谢

1 个答案:

答案 0 :(得分:1)

我唯一能想到用浏览器完成此操作的方法是要求客户端使用IE然后嵌入ActiveX控件。该页面必须以最高安全权限运行,以便ActiveX可以畅通无阻地运行。关于这一点的好处是它不需要太多(如果有的话)服务器端支持。它将全部由Javascript处理。

否则,要使其与浏览器无关,您必须在客户端计算机上运行侦听器应用程序,可能作为服务或设置为在计算机启动时启动(任务栏上通知区域的良好候选者)。客户端计算机上的侦听器应用程序可以使用WCF,套接字(无论您想要什么)建立与服务器的连接,然后当用户按下WEB应用程序上的按钮时,将从Web服务器向客户端侦听发送消息应用。这当然可以在客户端触发您想要的任何内容。

我也看到了几个并发症:

1)如何在客户端计算机上安装监听器?

2)您的Web应用程序现在需要与连接到客户端侦听器的服务器端组件进行通信。如果您已经在服务器上使用WCF,这可能不会太糟糕。如果客户端侦听器连接到用户正在使用它的同一个Web应用程序,则可能也不会太困难(使用长轮询或Web套接字等)

3)如何保护客户端侦听器并将客户端“会话”连接到Web“会话”,以便用户在其Web浏览器中单击按钮向其客户端实例发送消息旁边的监听器,而不是另一个用户的监听器。

这些都是可行的。几年前我写了一个类似于这样的应用程序。肯定存在挑战但我们已经开始工作并且已经稳定了好几年了。我们使用了WCF。