【问题标题】:Running an exe application from local resource inside ASP .Net Core HTML page从 ASP .Net Core HTML 页面内的本地资源运行 exe 应用程序
【发布时间】:2020-10-28 05:27:42
【问题描述】:

我的软件分为两部分:

  1. 托管在服务器上的 ASP .Net Core 3.1 应用程序
  2. .NET Framework 4.8 WinForms 应用程序部署在客户端PC上(如果这大大简化了问题的解决方案,我可以尝试将其放置在服务器上)。我需要这个单独的应用程序的原因是第三方控件仅适用于 .NET Framework 桌面 - WinForms 和 WPF(不幸的是,我无法避免使用或替换它)。

是否可以在 内部 ASP Net Core HTML 页面运行客户端 PC 应用程序? 我不需要使用 System.Diagnostics.Process 或类似技术启动它,我想以某种方式将它嵌入到 ASP 框架中。类似于 WFP 的 WindowsFormsHost 或 WinForms 的 ElementHost。

感谢任何帮助。提前谢谢你。

【问题讨论】:

  • 不,否则公司永远不会费心将他们的桌面应用程序迁移到 Web 并采用该路线。在 ActiveX 和 IE 的旧时代,这样的事情可能是可能的。一般来说,今天你会在 .NET Core 中编写一个 API 来回答你的 WinForm 请求
  • 好吧,我想可以在服务器上运行它,然后像在浏览器上运行的所有游戏流媒体服务一样流式传输屏幕。
  • @Martheen 听到这个消息很难过。谢谢你的解释。 P.S.使用用户反馈流式传输屏幕将比简单的 Web API 更难实现。

标签: c# asp.net winforms asp.net-core winforms-to-web


【解决方案1】:

基本上,您有以下选择:

  • 将您的桌面应用程序包装到 ActiveX 中,使用 IE Tab 扩展名(或类似扩展名),然后在页面上运行 ActiveX。最糟糕的一个是因为 ActiveX。事实上,您将无法使用现代浏览器功能。
  • 丢弃 Web UI。如果您需要桌面应用程序(没关系为什么),那么在服务器端使用桌面应用程序和 Web API。最简单和最明显的一个。您仍然与桌面相关联,那么忽略这一事实的原因是什么?
  • 在服务器端渲染提到的控件的输出,并将结果发送到浏览器。这取决于控件是什么、它做什么、它需要多少交互性等。此外,这假设您必须能够在您的服务器上运行 .NET 4.8 进程并从 .NET Core 应用程序与其通信。

【讨论】:

  • 谢谢。看来我需要采用桌面应用程序 + Web API 的方式..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-03
  • 1970-01-01
相关资源
最近更新 更多