starklord
starklord

Reputation: 291

Running dotnetcore Console application in Service Fabric Guest Executable

I am trying to run a dotnetcore Console application in a ServiceFabric GuestExecutable Container. While I was adding this GuestExecutable service to my SF application, I cofigured as follows

  1. Code Package Folder -> ..repos\NewDllGuestSF\CoreConsole\bin\Debug\netcoreapp2.0

  2. Program -> CoreConsole.dll

  3. Working Folder -> CodePackage

Here, I know I am trying to host this .dll file as my executable for the GuestExecutable service. This is what I am trying to do but could not somehow. When I tried the same with the treditional .NetFramework app and with an .exe executable, I am able to run it successfully on SF cluster. But I need to do is with dotnetcore application and of course with a dll executable.

So far I have tried is - I can generate a dll as well as an exe while building my dotnetcore console application and use the generated .exe file in GuestExecutable. But here, I have to configure my console app to target multiple Frameworks as "netcoreapp2.0;net461", that is something I can not do for some reasons.

When I run my dotnetcore Console app with a dll executable in SF cluster, I faced the following error enter image description here

Here if we see, the GuestExecutable service remains in healthy state but the application doesn't.

Can anyone please help me out on this, all I want to do is to host a .dll file as entry point in a GuestExecutable SF service.

Upvotes: 1

Views: 568

Answers (1)

Oleg Karasik
Oleg Karasik

Reputation: 969

As far as I understand you need to configure CodePackage in ServiceManifest.xml to run your .dll using external executable.

Here is the example how this could be done (please pay attention to IsExternalExecutable="true" attribute):

  <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>

Hope it helps.

Upvotes: 1

Related Questions