Запуск консольного приложения dotnetcore в гостевой исполняемой программе Service Fabric - PullRequest
0 голосов
/ 24 ноября 2018

Я пытаюсь запустить консольное приложение dotnetcore в контейнере ServiceFabric GuestExecutable.Пока я добавлял этот сервис GuestExecutable в мое SF-приложение, я конфигурировал его следующим образом:

  1. Папка пакета кода -> ..repos \ NewDllGuestSF \ CoreConsole \ bin \ Debug \ netcoreapp2.0

  2. Программа -> CoreConsole.dll

  3. Рабочая папка -> CodePackage

Здесь я знаю, яя пытаюсь разместить этот файл .dll в качестве моего исполняемого файла для службы GuestExecutable.Это то, что я пытаюсь сделать, но не смог как-то.Когда я попытался сделать то же самое с помощью стандартного приложения .NetFramework и исполняемого файла .exe, я смог успешно запустить его на кластере SF.Но мне нужно сделать это с приложением dotnetcore и, конечно, с исполняемым файлом dll.

До сих пор я пытался - я могу создать dll, а также exe при создании консольного приложения dotnetcore и использовать сгенерированный файл .exe в GuestExecutable.Но здесь я должен настроить свое консольное приложение так, чтобы оно предназначалось для нескольких Frameworks как «netcoreapp2.0; net461», что я не могу сделать по некоторым причинам.

Когда я запускаю свое приложение dotnetcore Console с исполняемым файлом dll в SF-кластере, я сталкиваюсь со следующей ошибкой enter image description here

Здесь, если мы видим, служба GuestExecutable остаетсяв здоровом состоянии, но приложение не.

Может кто-нибудь помочь мне в этом, все, что я хочу сделать, это разместить файл .dll в качестве точки входа в сервисе GuestExecutable SF.

1 Ответ

0 голосов
/ 24 ноября 2018

Насколько я понимаю, вам нужно настроить CodePackage в ServiceManifest.xml для запуска .dll с использованием внешнего исполняемого файла.

Вот пример того, как это можно сделать (обратите внимание на IsExternalExecutable = "true" * атрибут 1007 *):

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

Надеюсь, это поможет.

...