我正在尝试在ServiceFabric GuestExecutable容器中运行dotnetcore控制台应用程序。当我将此GuestExecutable服务添加到我的SF应用程序时,我的配置如下
代码包文件夹-> ..repos \ NewDllGuestSF \ CoreConsole \ bin \ Debug \ netcoreapp2.0
程序-> CoreConsole.dll
工作文件夹-> CodePackage
在这里,我知道我正在尝试将此.dll文件托管为GuestExecutable服务的可执行文件。这是我正在尝试执行的操作,但无法执行。当我尝试使用传统的.NetFramework应用程序和.exe可执行文件进行相同操作时,我能够在SF群集上成功运行它。但是我需要做的是dotnetcore应用程序,当然还有dll可执行文件。
到目前为止,我尝试过的是- 在构建dotnetcore控制台应用程序时,我可以生成一个dll以及一个exe,并在GuestExecutable中使用生成的.exe文件。但是在这里,我必须将控制台应用程序配置为将多个框架定位为“ netcoreapp2.0; net461”,出于某些原因,我无法做到这一点。
当我在SF群集中使用dll可执行文件运行dotnetcore控制台应用程序时,遇到以下错误
如果看到的话,GuestExecutable服务保持健康状态,但应用程序则没有。
任何人都可以帮我这个忙,我要做的就是在GuestExecutable SF服务中将.dll文件托管为入口点。
答案 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>
希望有帮助。