【问题标题】:FAILED to deploy ASP.NET Core / Angular app to Azure from Github repository无法从 Github 存储库将 ASP.NET Core / Angular 应用程序部署到 Azure
【发布时间】:2018-11-08 19:40:37
【问题描述】:

我使用dotnet new angular -o Homepage4 创建了一个默认项目。

我运行这个项目dotnet run,它会打开一个默认网页。一切正常。

我将此项目保存到 GitHub 存储库。

现在我希望从我的 GitHub 存储库构建我的 Azure 站点。

在我的 Azure 门户中...

  1. 选定的应用服务
  2. 选择了我的应用服务(我的网站)
  3. 选定的部署选项(经典)

  1. 选择 GitHub 作为部署选项

  1. 选择Homepage4仓库,自动选择master分支

  1. 点击确定

我得到了错误

点击该错误,打开部署详情

我看到最后一条命令失败,点击查看日志

打开了一个日志控制台,内容如下:

Command: "D:\home\site\deployments\tools\deploy.cmd"
Handling ASP.NET Core Web Application deployment.
  Restoring packages for D:\home\site\repository\Homepage4.csproj...
  Generating MSBuild file D:\home\site\repository\obj\Homepage4.csproj.nuget.g.props.
  Generating MSBuild file D:\home\site\repository\obj\Homepage4.csproj.nuget.g.targets.
  Restore completed in 3.2 sec for D:\home\site\repository\Homepage4.csproj.
Microsoft (R) Build Engine version 15.8.169+g1ccb72aefa for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 499.04 ms for D:\home\site\repository\Homepage4.csproj.
  Homepage4 -> D:\home\site\repository\bin\Release\netcoreapp2.1\Homepage4.dll
  Homepage4 -> D:\home\site\repository\bin\Release\netcoreapp2.1\Homepage4.Views.dll
EXEC : npm ERR! error : Method Not Allowed [D:\home\site\repository\Homepage4.csproj]
  npm ERR!     at errorResponse (D:\Program Files (x86)\npm\1.4.28\node_modules\npm\lib\cache\add-named.js:260:10)
  npm ERR!     at D:\Program Files (x86)\npm\1.4.28\node_modules\npm\lib\cache\add-named.js:203:12
  npm ERR!     at saved (D:\Program Files (x86)\npm\1.4.28\node_modules\npm\node_modules\npm-registry-client\lib\get.js:167:7)
  npm ERR!     at Object.oncomplete (fs.js:108:15)
  npm ERR! If you need help, you may report this *entire* log,
  npm ERR! including the npm and node versions, at:
  npm ERR!     <http://github.com/npm/npm/issues>

  npm ERR! System Windows_NT 6.2.9200
  npm ERR! command "node" "D:\\Program Files (x86)\\npm\\1.4.28\\node_modules\\npm\\bin\\npm-cli.js" "install"
  npm ERR! cwd D:\home\site\repository\ClientApp
  npm ERR! node -v v0.10.40
  npm ERR! npm -v 1.4.28
  npm ERR! code E405
D:\home\site\repository\Homepage4.csproj(38,5): error MSB3073: The command "npm install" exited with code 1.
Failed exitCode=1, command=dotnet publish "D:\home\site\repository\Homepage4.csproj" --output "D:\local\Temp\8d645b0c2726c81" --configuration Release
An error has occurred during web site deployment.
\r\nD:\Program Files (x86)\SiteExtensions\Kudu\78.11022.3613\bin\Scripts\starter.cmd "D:\home\site\deployments\tools\deploy.cmd"

我不确定我是否理解问题所在,有人可以建议吗?

提醒一下,它是运行dotnet new angular 命令时生成的默认代码。当在开发机器上运行dotnet run 时,代码显然可以工作。

谢谢

更新

我已将 Azure 上的 npm 版本更改为 6.1.0

尝试再次运行部署,但再次失败:

Command: "D:\home\site\deployments\tools\deploy.cmd"
Handling ASP.NET Core Web Application deployment.
  Restoring packages for D:\home\site\repository\Homepage.csproj...
  Generating MSBuild file D:\home\site\repository\obj\Homepage.csproj.nuget.g.props.
  Generating MSBuild file D:\home\site\repository\obj\Homepage.csproj.nuget.g.targets.
  Restore completed in 3.43 sec for D:\home\site\repository\Homepage.csproj.
Microsoft (R) Build Engine version 15.8.169+g1ccb72aefa for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 354.75 ms for D:\home\site\repository\Homepage.csproj.
  Homepage -> D:\home\site\repository\bin\Release\netcoreapp2.1\Homepage.dll
  Homepage -> D:\home\site\repository\bin\Release\netcoreapp2.1\Homepage.Views.dll

  D:\Program Files (x86)\npm\6.1.0\node_modules\npm\bin\npm-cli.js:79
        let notifier = require('update-notifier')({pkg})
            ^^^^^^^^
  SyntaxError: Unexpected identifier
      at Module._compile (module.js:439:25)
      at Object.Module._extensions..js (module.js:474:10)
      at Module.load (module.js:356:32)
      at Function.Module._load (module.js:312:12)
      at Function.Module.runMain (module.js:497:10)
      at startup (node.js:119:16)
      at node.js:935:3

  D:\Program Files (x86)\npm\6.1.0\node_modules\npm\bin\npm-cli.js:79
        let notifier = require('update-notifier')({pkg})
            ^^^^^^^^
  SyntaxError: Unexpected identifier
      at Module._compile (module.js:439:25)
      at Object.Module._extensions..js (module.js:474:10)
      at Module.load (module.js:356:32)
      at Function.Module._load (module.js:312:12)
      at Function.Module.runMain (module.js:497:10)
      at startup (node.js:119:16)
      at node.js:935:3
D:\home\site\repository\Homepage.csproj(39,5): error MSB3073: The command "npm install" exited with code 8.
Failed exitCode=1, command=dotnet publish "D:\home\site\repository\Homepage.csproj" --output "D:\local\Temp\8d64a5971495781" --configuration Release
An error has occurred during web site deployment.
\r\nD:\Program Files (x86)\SiteExtensions\Kudu\78.11022.3613\bin\Scripts\starter.cmd "D:\home\site\deployments\tools\deploy.cmd"

这次是什么?

【问题讨论】:

  • 这是NPM引起的错误,请问您使用的是哪个NPM版本? GitHub 上的一个线程表明,较旧的 NPM 通常会产生此问题:github.com/npm/npm/issues/20830
  • 我使用的是 npm 6.4.1
  • 安装程序运行在Azure平台上——不是极客,但是——我想那边的NPM版本,npm -v 1.4.28。因此,您需要更新,请参阅,blogs.msdn.microsoft.com/azureossds/2016/04/20/…
  • 非常感谢,我会试试...
  • 嗨,我更新了我的帖子,得到了更多结果。我已将 Azure 上的 npm 版本更改为 6.1.0,但仍然出现一些错误,请参见上文,抱怨 SyntaxError: Unexpected identifier

标签: node.js azure asp.net-core npm azure-web-app-service


【解决方案1】:

您的代码在开发机器上运行良好,因为您使用的是 npm 6.4,而在 Azure 上它失败了,因为您使用的是旧版本的 npm 1.4.28。该错误是由于 npm 库引起的,需要您更新 npm 库。

您需要强制为您的应用程序使用哪些 npm 和 Node.js 版本,您可以将它们添加到 package.json 文件中,然后重试上传。使用 dotnet new angular 为您创建的默认应用在 package.json 文件中不包含任何 engines 属性,这意味着平台使用默认内容。由于您机器上可用的平台是 Node.js 和 6.4 的 npm,它可以工作。在 Azure 上,它转到 (~)1.4,这会导致问题。只需通过将引擎添加到您的 package.json 来解决问题,它就在这个区域中

"license": "MIT",
"engines": {
    "node": "8.1.4",
    "npm": "5.0.3"
},
"scripts": {

然后通过 GitHub 重新部署应用程序,它会工作,因为这一次您将强制平台使用这些版本。

请在这篇文章中详细了解如何在 Azure 平台上管理 Node.js 运行时:https://blogs.msdn.microsoft.com/azureossds/2016/04/20/nodejs-and-npm-versions-on-azure-app-services/

对于类似的线程,要注意 Azure 上支持的 Node.js 运行时版本,请查看,Which versions of node.js are available on Azure Web Sites?

【讨论】:

    猜你喜欢
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 2020-10-29
    • 2016-06-01
    • 2016-05-22
    相关资源
    最近更新 更多