gpt4 book ai didi

asp.net-mvc - 由于 MVC.Abstractions,.Net Core 应用程序无法发布到 GCP App Engine

转载 作者:太空宇宙 更新时间:2023-11-03 15:34:57 26 4
gpt4 key购买 nike

这是我第一次接触 .Net Core 和 App Engines,所以如果我听起来不了解,请原谅我。

我们有一个 .Net Core 应用程序,我们正试图将其发布到 GCP 应用程序引擎(显然)。当我运行 dotnet publish -c Release 时,它构建得很好,没有任何错误。当我在本地测试该程序时,它运行良好并且我能够访问它。但是,每当我尝试在 GCP 上获取它时,我都会收到以下错误:

Updating service [default] (this may take several minutes)...
.................................................................................................................................................failed.
ERROR: (gcloud.app.deploy) Error Response: [9]
Application startup error:
Error:
An assembly specified in the application dependencies manifest (ApplicationName.deps.json) was not found:
package: 'Microsoft.AspNetCore.Mvc.Abstractions', version: '2.0.2'
path: 'lib/netstandard2.0/Microsoft.AspNetCore.Mvc.Abstractions.dll'
This assembly was expected to be in the local runtime store as the application was published using the following target manifest files:
aspnetcore-store-2.0.5.xml

Failed to deploy project WebApiDotNetCore to App Engine Flex.

我们尝试将其从依赖项 JSON 中删除,但最终破坏了所有内容,因此它确实是必需的。它通过 nuget 安装在项目中,因此它应该包含在 dotnet restore 中。我环顾四周,一些消息来源似乎认为这是 dotnet core sdk 的安装,但我已经在三台计算机上尝试过它并且总是得到相同的结果。

最后,我应该说当我尝试通过命令行以及直接通过带有 GCP SDK 的 Visual Studio 进行部署时会发生这种情况。

有没有人遇到过这个错误或类似的错误?非常感谢任何建议或指导。

谢谢!

-BT

最佳答案

操作修订

作为更新,除了我在尝试加载应用程序时收到 502 错误之外,我还能够解决此问题。以下是我为正在寻找该做什么的其他人采取的步骤:

先决条件:安装并运行 适用于 Windows 的 Docker 和 Google Cloud SDK。事实证明,运行 Docker for Windows 是一件痛苦的事情。许多重新启动和重新安装。

  1. 打开解决方案并确保启动项目设置正确。
  2. 右键单击启动项目,然后选择“添加”>“Docker 支持”。
  3. 在弹出窗口中选择 Linux 并允许创建文件。
  4. 完成后,Dockerfile 应该出现在预览窗口中。执行以下操作:

对我来说,第一行是:FROM microsoft/aspnetcore:2.0 AS base。将其更改为 FROM microsoft/aspnetcore-build:2.0 AS base

此外,检查以确保最后一行具有正确的 .dll 名称。适用于 Windows 的 Docker 将放置项目名称而不是类名称,因此对我而言,我最终的 .dll 名称与项目名称不同。

最后,如果您的项目有任何需要运行但不需要构建的依赖项,那么您需要手动添加它们。对我来说,我们有几个 XML 文件需要放在 app 文件夹中,所以我必须添加 COPY *.xml/app/ 并将这些文件放在与解决方案文件相同的文件夹中在。

如果您需要对 Dockerfile 执行任何其他操作,我强烈推荐 this page .这是所有用英语编写的 Dockerfile 命令的操作方法! (这是我最大的问题——我对 Linux 的经验很少,对 Docker 的经验更少,而且一切都是用希腊语为我编写的)。

  1. 创建一个 app.yaml 文件。我只是使用标准:
    运行时间:自定义
    环境:弹性

  2. 将在启动项目的文件夹中找到的 Dockerfile 复制到包含解决方案的文件夹中。

  3. 将 gcloud 初始化到正确的项目,然后导航到解决方案文件夹。键入 gcloud app deploy app.yaml,然后按照屏幕上的指南进行操作。

对我来说,部署 GCP 大约需要 15 分钟,因此根据项目的复杂程度,可能需要更长的时间,尽管这个项目相当复杂。

现在我试图弄清楚我的 502 错误...我已经尝试了一切 - 更改应用程序中的监听端口,在 dockerfile 上公开监听端口,尝试让 GCP 打开该端口,并尝试六个不同的端口。它进展缓慢,因为每次部署都非常繁琐。

希望这对几周前像我一样甚至从未听说过 Docker 的人有所帮助!

关于asp.net-mvc - 由于 MVC.Abstractions,.Net Core 应用程序无法发布到 GCP App Engine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48652079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com