早上好, 我有以下场景:我有两个项目的解决方案 - 第一个项目是MVC WebClient,第二个项目是WCF服务。我希望通过WCF在特定位置打开 Windows资源管理器。我知道纯客户端是不可能的,所以我在考虑WCF是否可以做到这一点。
完整方案是:用户点击按钮,然后将打开Windows资源管理器。
我已尝试在我的本地计算机上执行此操作
Process.Start(path);
它可以工作,但如果我将它托管在IIS上呢?
如果这种情况不起作用,任何人都可以帮助解决这个问题(如果有的话)吗?
非常感谢
答案 0 :(得分:1)
我唯一能想到用浏览器完成此操作的方法是要求客户端使用IE然后嵌入ActiveX控件。该页面必须以最高安全权限运行,以便ActiveX可以畅通无阻地运行。关于这一点的好处是它不需要太多(如果有的话)服务器端支持。它将全部由Javascript处理。
否则,要使其与浏览器无关,您必须在客户端计算机上运行侦听器应用程序,可能作为服务或设置为在计算机启动时启动(任务栏上通知区域的良好候选者)。客户端计算机上的侦听器应用程序可以使用WCF,套接字(无论您想要什么)建立与服务器的连接,然后当用户按下WEB应用程序上的按钮时,将从Web服务器向客户端侦听发送消息应用。这当然可以在客户端触发您想要的任何内容。
我也看到了几个并发症:
1)如何在客户端计算机上安装监听器?
2)您的Web应用程序现在需要与连接到客户端侦听器的服务器端组件进行通信。如果您已经在服务器上使用WCF,这可能不会太糟糕。如果客户端侦听器连接到用户正在使用它的同一个Web应用程序,则可能也不会太困难(使用长轮询或Web套接字等)
3)如何保护客户端侦听器并将客户端“会话”连接到Web“会话”,以便用户在其Web浏览器中单击按钮向其客户端实例发送消息旁边的监听器,而不是另一个用户的监听器。
这些都是可行的。几年前我写了一个类似于这样的应用程序。肯定存在挑战但我们已经开始工作并且已经稳定了好几年了。我们使用了WCF。