在Service Fabric Guest Executable中运行dotnetcore控制台应用程序

时间:2018-11-24 06:54:20

标签: .net-core azure-service-fabric guest-executable

我正在尝试在ServiceFabric GuestExecutable容器中运行dotnetcore控制台应用程序。当我将此GuestExecutable服务添加到我的SF应用程序时,我的配置如下

  1. 代码包文件夹-> ..repos \ NewDllGuestSF \ CoreConsole \ bin \ Debug \ netcoreapp2.0

  2. 程序-> CoreConsole.dll

  3. 工作文件夹-> CodePackage

在这里,我知道我正在尝试将此.dll文件托管为GuestExecutable服务的可执行文件。这是我正在尝试执行的操作,但无法执行。当我尝试使用传统的.NetFramework应用程序和.exe可执行文件进行相同操作时,我能够在SF群集上成功运行它。但是我需要做的是dotnetcore应用程序,当然还有dll可执行文件。

到目前为止,我尝试过的是- 在构建dotnetcore控制台应用程序时,我可以生成一个dll以及一个exe,并在GuestExecutable中使用生成的.exe文件。但是在这里,我必须将控制台应用程序配置为将多个框架定位为“ netcoreapp2.0; net461”,出于某些原因,我无法做到这一点。

当我在SF群集中使用dll可执行文件运行dotnetcore控制台应用程序时,遇到以下错误 enter image description here

如果看到的话,GuestExecutable服务保持健康状态,但应用程序则没有。

任何人都可以帮我这个忙,我要做的就是在GuestExecutable SF服务中将.dll文件托管为入口点。

1 个答案:

答案 0 :(得分:0)

据我了解,您需要在CodePackage中配置ServiceManifest.xml才能使用外部可执行文件运行.dll

以下是此操作的示例(请注意 IsExternalExecutable =“ true” 属性):

  <CodePackage Name="Code" Version="1.0.0">
    <EntryPoint>
      <ExeHost IsExternalExecutable="true">
        <!-- We are using dotnet cli to launch our Service.dll -->
        <Program>dotnet</Program>
        <Arguments>Service.dll</Arguments>
        <WorkingFolder>CodePackage</WorkingFolder>
      </ExeHost>
    </EntryPoint>
  </CodePackage>

希望有帮助。