将 .Net Core 2.0 Web API 部署到 AWS Elastic Beanstalk 时出错

Error on deploying .Net Core 2.0 Web API to AWS Elastic Beanstalk

我已经使用 .Net Core 2.0 来 构建我的 Web API。现在,我正在尝试使用其 Elastic Beanstalk 服务将该项目部署到 AWS。我也在使用 Visual Studios AWS 部署工具

在部署过程中,我收到以下错误;

Error during deployment: Could not find a part of the path 'C:\inetpub\AspNetCoreWebApps\app\appsettings.Development.json'.

我已将以下部分添加到我的 .csproj;

<ItemGroup>
    <Content Update="appsettings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Update="appsettings.Development.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
</ItemGroup>

当我构建我的项目时,我可以看到我的 appsettings.jsonappsettings.Development.json 在我的输出文件夹中。如果我将应用程序发布到我的本地电脑,它们也会出现在发布的目录中。

一直不明白为什么亚马逊的服务收不到...

编辑: 所以,有趣的是我从 [=42= 创建了一个新的 .Net Core 2.0 Web Api 项目] 模板并尝试将其部署到 AWS,它给了我同样的错误。但是,当我创建一个 MVC 项目并将其部署到 AWS 时,一切正常。 Web api 模板的默认设置似乎以某种方式影响了部署...

所以我创建了一个新的 .Net Core 2.0 MVC 项目 和 migrated/adapted 我的网站 api。现在部署没有任何问题。

因此,如果您的项目是从 Web Api 模板启动的并且出现类似错误,请尝试在模板之间切换。

因此,在包含和排除某些文件的试验和错误之后,问题出在 WebApi 上,因为它没有 wwwroot 文件夹,而且弹性 beanstalk 脚本似乎正在寻找它。

为了让它工作,我添加了一个 wwwroot 文件夹并在其中放置了一个占位符 html 文件,我的项目现在可以正确部署了!

您是否使用适用于 VS 2017 的 AWS 工具包来部署您的应用程序。这将为您完成大量配置工作。

使用 IIS 10 的 asp.net 核心 2 的 AWS 预配置环境存在很多问题,请尝试终止您的 beantalk 环境并直接从 Visual Studio 通过 AWS 工具包重新创建和部署。右键单击您的项目并使用 "Publish to AWS Beanstalk"