【问题标题】:Can I open client's Windows Explorer from WCF?我可以从 WCF 打开客户端的 Windows 资源管理器吗?
【发布时间】:2014-06-11 14:44:51
【问题描述】:

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

完整场景是:用户单击按钮,然后将打开 Windows 资源管理器。

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

Process.Start(path); 

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

  1. 它会起作用吗?
  2. 它会打开客户端的资源管理器还是服务器的资源管理器?
  3. 如果前两个步骤可行,我是否也需要在 IIS 上托管 WCF 服务或带有服务引用的 MVC 客户端就足够了?

如果这种情况不起作用,任何人都可以帮助解决这个问题(如果有的话)吗?

非常感谢

【问题讨论】:

  • 您希望在服务器上执行的代码在客户端机器上打开一个窗口?
  • 是的,我正在尝试找出是否可能。 Windows资源管理器可以通过javascript打开,但不是在特定位置,所以我希望这不是不可能的。
  • 为什么要打开资源管理器?
  • 客户的硬盘中有一些文件和文件夹。他想点击按钮并“跳转”到包含相关文件的文件夹中。

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


【解决方案1】:

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

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

我也看到了一些并发症:

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

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

3) 您如何保护客户端侦听器并将客户端“会话”连接到网络“会话”,以便用户单击其网络浏览器中的按钮向其客户端实例发送消息-side 监听器,而不是其他用户的监听器。

这些都是可行的。几年前我写了一个类似这样的应用程序。肯定存在挑战,但我们让它发挥了作用,而且它已经稳定了好几年了。我们使用了 WCF。

【讨论】:

  • 感谢您的信息,这将非常有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-24
  • 1970-01-01
  • 2012-02-14
相关资源
最近更新 更多