我有一个CLR探查器代理,当我部署到Service Fabric时,我将添加到我的ASP.NET应用程序中。我可以成功地将我的应用程序和我的CRL代理程序的组件部署到服务器,并且我已经确认我的CLR分析器可以工作,如果我RDP到节点然后手动启动它;我无法知道我的生活如何或在哪里可以在部署到我的节点后自动运行此命令。一旦我的应用程序的所有组件完成部署,我需要运行“startup.cmd”文件。
我唯一想到的就是修改我的项目标配的“Deploy-FabricApplication.ps1”。对于Azure云,有一个“ServiceDefinition.csdef”文件的概念,它允许您启动任务但不确定它是否可用于Service Fabric?
最好的方法是什么?
答案 0 :(得分:1)
不完全确定最好的方法是什么。我假设您需要CLR Profiler一直运行?
自从我使用它以来已经有一段时间了,但ServiceManifest.xml有一个添加SetupEntryPoint的选项,请参阅https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-deploy-existing-app以获取有关如何将guest虚拟机exe设置为服务的详细示例。
要点是在servicemanifest中的CodePackage标记中添加如下内容:
<SetupEntryPoint>
<ExeHost>
<Program>profiler\ClrProfiler.exe</Program>
</ExeHost>
</SetupEntryPoint>
据我所知,最终结果是在每次服务启动之前,同样会运行探查器。
请注意,如果您有多个相同的实例(使用不同的名称或某些名称),那么探查器可能会在同一主机/节点上多次运行。