4

嗨,任何人都可以帮忙,我正在尝试让 Service Fabric 托管一个 .Net Core Web API Restful 服务作为来宾可执行文件。

我可能错误地猜测,一旦我完成了完整的发布,我应该能够运行 exe,但是当我这样做时它会失败。

我做了以下...

  1. 确保主 Web API 程序集和所有引用的 .NET Core 程序集设置为 x64 目标
  2. 将输出类型设置为 exe 并具有如下所示的 program.cs...

    public static void Main(string[] args)
    {
        var host = new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .UseApplicationInsights()
            .Build();
    
        host.Run();
    }
    
  3. 完成命令行的东西......

    dotnet restore
    dotnet publish -c release -r win10-x64
    
  4. 在生成的 win10-x64 发布文件夹中的 Project.deps.json 中引用了“Microsoft.AspNetCore.Server.Kestrel”:“1.0.0”。

但是,当我直接执行该操作时,控制台窗口会报告 StartUp Constructor 的问题,即执行 builder.build 时。

    public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
            .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
            //.AddServiceFabricConfig("Config") // Add Service Fabric configuration settings.
            .AddEnvironmentVariables();
        Configuration = builder.Build();
    }

我感觉接近让这些东西正常工作,并添加了一个 Service Fabric 来宾主机项目来托管 exe,但不用说节点失败并出现如下所示的错误......

Error event: SourceId='System.Hosting', Property='CodePackageActivation:Code:EntryPoint'.

CodePackage 激活过程中出错。服务主机以退出代码终止:2147516556

我究竟做错了什么?

4

0 回答 0