在我的ServiceManifest.xml中,我有两个codePackages: 第一个代码包具有一个设置入口点 A 和一个入口点 B
<CodePackage Name="Code" Version="1.0">
<SetupEntryPoint>
<ExeHost>
<Program>A.bat</Program>
<WorkingFolder>CodePackage</WorkingFolder>
</ExeHost>
</SetupEntryPoint>
<EntryPoint>
<ExeHost>
<Program>B.exe</Program>
<WorkingFolder>Work</WorkingFolder>
</ExeHost>
</EntryPoint>
第二个代码包的一个入口点 c :
<CodePackage Name="anotherCode" Version="1.0">
<EntryPoint>
<ExeHost>
<Program>C.exe</Program>
<WorkingFolder>Work</WorkingFolder>
</ExeHost>
</EntryPoint>
我要开始的顺序是A> B> C,这意味着B将在A成功之后执行,C将在B成功之后执行。现在,由于A在A下,A将被执行原基。但我不知道如何控制B和C的顺序。
谢谢
答案 0 :(得分:0)
我不确定此执行链的确切目的,但是您尝试执行的操作不起作用。
SetupEntryPoint 旨在作为初始化脚本执行,以设置主程序(可执行文件)启动所需的环境,例如创建文件夹,安装依赖项,复制数据等。它是一个特权入口点,默认情况下,它以与Service Fabric(通常为NETWORKSERVICE帐户)相同的凭据运行,而不是任何其他入口点。 SetupEntryPoint 避免了长时间运行具有高特权的服务主机。
EntryPoint 是创建服务时将始终运行的主程序(可执行程序),在服务结构要求之前,它并不意味着要完成(停止),如果服务结构确实停止,则该服务面料会将其视为失败,然后重新启动。
CodePackage 用于将多个程序(可执行文件)作为一个单独的服务加入该服务包中,当针对这些服务类型之一实例化一个服务时,清单中声明的所有代码包都将通过运行其入口点激活。通常在以下情况中使用:必须在同一节点上同时运行的两个可执行文件,其中一个示例是主应用程序,而一个日志收集器或监视主应用程序的看门狗应用程序。当一个应用程序启动时,完整的程序包将被复制到节点并激活代码包。
如果您尝试创建执行链,则应该: