【问题标题】:Migration of Traditional Windows Service to Service Fabric将传统 Windows 服务迁移到 Service Fabric
【发布时间】:2017-02-08 05:34:56
【问题描述】:

我正在对 Service Fabric for Windows Servers 的预览版感到厌烦,可在此处找到: Create and manage a cluster running on Windows Server

我们正在尝试解决人们认为太多 Windows 服务无法手动管理的问题,我们正在考虑使服务更加自动管理的基础架构。我们目前在本地运行,因此我们正在寻找适用于 Windows 服务器的 Service Fabric,而不是 Azure 上的 Service Fabric。

我有一个在 Embarcadero C++ Builder XE7 中编译的本机 Windows 服务(Windows NT 服务),当前 /install 和 /uninstall 本身进入 Windows 服务控制管理器。该服务使用WebBroker 绑定到端口以接收HTTP 请求。当前正在从 Oracle 数据库中检索数据。它的范围很小,但在我看来还不足以调用微服务。

这些特定服务不使用控制台运行。它们通过 WinMain() 方法而不是 main() 运行。我们确实利用命令行参数来弹出一个运行服务进程的表单,以便于开发中的调试,但是如果在控制台上运行,这不会阻塞。

让这个应用程序启动并作为来宾可执行文件运行会涉及什么?项目是否需要重新编译为控制台应用程序才能在服务结构中运行?你预见到还有其他问题吗?

我了解这是一个预览版本,因此我承诺进行研究,以便在与 RTM 中的信息存在差异时更新答案。

【问题讨论】:

    标签: windows windows-services c++builder azure-service-fabric webbroker


    【解决方案1】:
    • 为来宾可执行文件启动 here。任何可执行文件都可以,不 需要控制台。
    • 侦听传入流量需要将端口映射到 ServiceManifest 文件。
    • here 解释了以提升的权限运行。
    • 确保您的可执行文件不需要用户交互 控制台级别。

    【讨论】:

    • 如果可执行文件不监听传入流量并且只有一个 CLI 怎么办?
    • 在这种情况下,不要在服务清单中添加任何端点。
    • 但是可以每次调用不同的输入参数的exe吗?
    • 不,这需要您创建服务并从那里调用可执行文件。
    • 谢谢,这就是我的怀疑......我可能只是使用无状态的演员和 P-invoke 从那里而不是创建一个新的客户可执行文件来 P-invoke,听起来合理吗?
    猜你喜欢
    • 2019-02-09
    • 2018-10-30
    • 2020-01-07
    • 2019-01-17
    • 2022-06-18
    • 2016-10-04
    • 2017-03-15
    • 2018-08-29
    • 1970-01-01
    相关资源
    最近更新 更多