【问题标题】:Allow website to interact with client PC via locally installed service允许网站通过本地安装的服务与客户端 PC 交互
【发布时间】:2013-05-28 18:57:29
【问题描述】:

我目前正在开发一个公司 Intranet 应用程序。我希望能够让用户安装 Windows 服务或某种可以与我们当前正在构建的 ASP.NET 网站交互的程序。

目标是单击网站上的按钮并允许它与当前用户的计算机通信,从而允许我创建 Outlook 电子邮件草稿以及其他只能通过本地安装的程序才能完成的任务。

我怎么能做到这一点?理想情况下,我们需要它在所有浏览器上运行,或者至少在 IE、Chrome 和 Firefox 上运行。

【问题讨论】:

    标签: c# asp.net windows


    【解决方案1】:

    创建一个在本地运行的“工人”程序,并将其与某些文件扩展名(例如 *.sbonskosky)相关联。

    当您的 Web 应用程序想要向本地程序发送一些工作时,让它生成一个 *.sbonskosky 文件,该文件使用浏览器下载并由相关程序“执行”。类似于当浏览器要求“打开或保存”PDF 并且您选择“打开”时,它会启动 Acrobat。

    【讨论】:

      【解决方案2】:

      如果您可以将客户端操作系统限制为 Windows,那么 ClickOnce 就是您的最佳选择。所有主流浏览器都支持它。

      基本上,您创建一个桌面应用程序并让它从服务器部署。在客户端时,应用程序可以与所有本地组件交互,因为它在本地特权用户上工作。

      【讨论】:

        【解决方案3】:

        我现在用我们的网站和客户端计算机做类似的事情。基本上,我们拥有的是一个 DLL,它通过安装程序安装到我们的每台客户端计算机上。然后在我们的网页上,有一个通过JNI调用DLL的小程序。当用户单击某个按钮或链接时,小程序与 C++ DLL 对话,后者调用 C# DLL 来执行客户端代码。

        【讨论】:

          【解决方案4】:

          由于您在用户机器上运行了一个应用程序,您可以在该应用程序中托管 WCF 服务并将其绑定到特定端口(例如 44444)。然后从您的 Web 应用程序发送 http 请求到 localhost:44444。因此,当用户单击网页上的按钮时,它会向本地计算机上运行的服务器发送请求。希望这会有所帮助。

          【讨论】:

          • 所以 WCF 服务会安装在每个客户端的机器上,绑定到端口 44444?但是如果我向 localhost 发送请求,它不会将这些请求传递给 Web 服务器,而不是客户端的计算机吗?
          • 当浏览器向 localhost 发送请求时,它会转到本地机器(用户机器)上运行的服务
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-04-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-07
          • 2012-11-30
          相关资源
          最近更新 更多