无法从Visual Studio 2019发布到Azure函数

时间:2019-09-19 07:51:09

标签: visual-studio azure-functions publish

以前,我能够从Visual Studio发布到Azure函数,但是最近我总是收到一条错误消息,指出发布遇到错误。它将指向如下内容的日志文件:

    System.AggregateException: One or more errors occurred. ---> System.Exception: Publishing failed.
       --- End of inner exception stack trace ---
       at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
       at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
       at Microsoft.Publish.Framework.Model.DefaultPublishSteps.<>c__DisplayClass26_0.<IsBuildCompletedSuccessfully>b__2()
       at System.Threading.Tasks.Task`1.InnerInvoke()
       at System.Threading.Tasks.Task.Execute()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at Microsoft.Publish.Framework.Model.DefaultPublishSteps.<DefaultCorePublishStep>d__23.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.<RunPublishTaskAsync>d__205.MoveNext()
    (Inner Exception #0) System.Exception: Publishing failed.

System.Exception: Publishing failed.

我尝试了以下方法:

  • 重置Azure中的发布配置文件,在Visual Studio中创建一个新的配置文件,然后再次尝试发布。还是同样的错误。
  • 在Azure中删除功能应用程序并重新创建它。将新的发布配置文件获取到Visual Studio中,然后再次尝试发布。还是同样的错误。
  • 将Visual Studio 2019升级到最新版本(16.2.5),然后再次尝试发布。还是同样的错误。

请注意,我在同一解决方案中拥有一个Azure网站,但仍可以将其发布到Azure。

2 个答案:

答案 0 :(得分:0)

如果 WEBSITE_RUN_FROM_PACKAGE 设置为1,则可能会导致Visual Studio部署问题:

打开Azure门户并检查是否存在这种情况,如果是,则将其设置为0。应该可以。

以下是辅助link

希望这会有所帮助,如果没有帮助,请分享代码库,我会在最后尝试复制。

答案 1 :(得分:0)

我对Azure函数非常陌生,但是今天我遇到了类似的问题(也许是相同的问题),并且找到了解决方法,所以我希望它也对您有用。 Visual Studio通过将zip文件发送(上传)到Azure来发布该功能。不幸的是,似乎VS设置了发送该文件的超时时间,因此,如果它太大或您的连接上传速度太慢,则发布会失败,因为它在超时之前没有完成:(

还有其他方法可以在不使用VS的情况下发送zip,如果您想了解详细信息,请参见下面的链接,否则TL; DR只需遵循链接下方我已经测试过的简单说明即可

https://docs.microsoft.com/en-us/azure/azure-functions/deployment-zip-push

我使用curl命令,它对我有用,没有超时。您也可以尝试使用powershell或AZ cli,但是卷曲确实很容易,只要小心获取正确的uid / pwd,就我而言,uid是“ $” +“ project_name” 这是一个示例,用您的参数替换参数

curl -X POST -u your_username:your_password --data-binary @"your_zip_path" https://your_project_name.scm.azurewebsites.net/api/zipdeploy

请耐心等待,直到上传结束,没有进度条,请查看网络活动,如果正在发送数据,则上传正在进行。您可以在可以从azure下载的发布文件中找到所有参数,它们也在VS中。对于zip文件,您可以使用一个VS无法部署,而VS不会删除它,在我的情况下,它位于obj \ Release \ netcoreapp2.1 \ PubTmp

中的proj目录下

P.S我将WEBSITE_RUN_FROM_PACKAGE设置为1,许多文档建议将此设置设置为1,因此请小心更改为0,可能会有副作用。

相关问题