尝试从Visual Studio发布Azure函数时出错


13

当我尝试使用Visual Studio发布函数时,出现以下错误消息,您知道如何解决此问题吗?

System.AggregateException:发生一个或多个错误。---> System.Exception:发布遇到错误。我们无法确定错误的原因。检查输出日志以获取更多详细信息。---内部异常堆栈跟踪的结尾---在System.Threading.Tasks.Task.Task.Wait(Int32毫秒超时,CancellationToken cancelleToken)在System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)在Microsoft.Publish.Framework。在System.Threading.Tasks.Task`1.InnerInvoke()在System.Threading.Tasks.Task.Execute()处的Model.DefaultPublishSteps。<> c__DisplayClass26_0.b__2()-从上次发生异常的位置开始的堆栈跟踪结束在System.Runtime.CompilerServices处抛出---在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)处。Microsoft.Publish.Framework.Model.DefaultPublishSteps.d__23.MoveNext()上的TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)-从上次引发异常的位置开始的堆栈跟踪-在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (任务任务)在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext()--->(内部异常#0)System.Exception:发布具有遇到错误。我们无法确定错误的原因。检查输出日志以获取更多详细信息。<- MoveNext()-从上一个引发异常的位置开始的堆栈跟踪--在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task任务)在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext()--->(内部异常#0)System.Exception:发布遇到错误。我们无法确定错误的原因。检查输出日志以获取更多详细信息。<- MoveNext()-从上一个引发异常的位置开始的堆栈跟踪--在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task任务)在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) .Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext()--->(内部异常#0)System.Exception:发布遇到错误。我们无法确定错误的原因。检查输出日志以获取更多详细信息。<- d__213.MoveNext()--->(内部异常#0)System.Exception:发布遇到错误。我们无法确定错误的原因。检查输出日志以获取更多详细信息。<- d__213.MoveNext()--->(内部异常#0)System.Exception:发布遇到错误。我们无法确定错误的原因。检查输出日志以获取更多详细信息。<-

System.Exception:发布遇到错误。我们无法确定错误的原因。检查输出日志以获取更多详细信息。

===================


目前在Visual Studio 2019中我遇到了类似的问题 -尽管我正尝试发布至我的情况下的文件夹。我仍在尝试查找引起此问题的原因,但就我而言,到目前为止,我已经尝试过:1.)清除NuGet缓存,2.)删除bin和obj文件夹3.)创建了新的文件夹配置文件此外,您在输出日志文件中看到了什么?有什么用吗?
VirtualValentin

您是否尝试通过以下方式通过Git部署它Deployment Center
-pavle

Answers:


8

你能试一下吗 this

从Azure门户的Azure功能应用程序设置中完全删除WEBSITE_RUN_FROM_PACKAGE设置。


2
我这样做没有任何成功。
Recusiwe

这对我有用。我不确定在进行环境更改时它是否与它“重新启动” Azure功能有关,或者是否为阻止配置。
贾斯汀·内夫

5

这是Visual Studio超时问题,这意味着您的代码和其他一些设置不是解决问题的关键。发生此错误的原因是Visual设置了发布的超时限制。(文件太大或互联网速度不稳定)

如果您的部署项目不太大,则可以等到网络速度稳定后再尝试运行它。当然,您也可以尝试其他部署方法来避免此问题,例如zip deploy


我已经成功使用zipdeploy部署了它。但是,当我检查App内容时,它会被更新,但是当我运行该功能时,它似乎正在运行旧版本?
Recusiwe

@Recusiwe“运行旧版本”是什么意思?您是说azure函数的版本已更改吗?zip部署解决了这个问题吗?
BowmanZhu

我所说的“旧版本”是指我能够从VS发布的最新版本,而不是经过zip部署的版本。该应用程序内容包含已部署zip中的代码,但不会运行它。它运行旧版本。
Recusiwe

@Recusiwe您正在使用哪个功能版本?您正在使用哪个IDE?以及您的项目的组装是什么(.csproj文件),我之前遇到过类似的错误,那时候似乎是组装问题。有时仅在Visual Studio 2019中会发生此错误。您可以尝试使用Visual Studio 2017查看此异常是否仍然存在。如果您使用的是Visual Studio 2017,是否使用Resharper?我正在尝试重现您的错误并遇到类似的错误,但是我不确定这与您的情况有关。
BowmanZhu

Function app v。2和Visual Studio
16.4.1

0

如果不在像GitHub这样的播放表单上共享您的项目,我们真的很难提供具体的建议,因为变量太多,NuGET软件包和引用的组合如此之多,以至于您的项目可能会以这种方式引起冲突。错误。

尤其是对于v2函数,我已经多次遇到此问题或类似问题。“功能”的最大因素之一是v1和v2之间的竞争概念。

当您使用Visual Studio发布向导在Azure中创建目标资源时,如果您为此付出了一段时间的努力,那么它往往会取得更大的成功,我建议您按照以下过程进行操作,作为概念验证:

该建议在VS2017和2019中同样有效

  1. 在相同的解决方案中,在Visual Studio中创建一个新的Function Project。
    • 复制原始函数的名称
  2. 将函数发布到NEW Azure资源,使用发布向导创建此资源。
  3. 如果发布成功:
    • 将原始项目代码移至新项目
    • 请密切注意要带来的nuget软件包的版本,它们及其依赖项必须符合v2
  4. 如果出版是不是成功
    • 确保将Visual Studio升级到最新版本
    • 确保您的Azure工具也已升级到最新版本

作为一般的经验法则,使用Azure Functions获得一般成功:

  1. 将v1用于.Net Framework项目,或者任何参考项目或NuGET软件包都具有.Net Fx依赖项。(因此是.Net 4 + ...或非.Net Core的任何东西。)

    即使那些依赖关系针对多个项目,使用功能部署也会失败,因为在部署过程中评估NuGET依赖关系时,它无法正确检测正确的平台。

  2. 将v2 用于.Net Core项目,请确保您的引用也仅是.Net core

递增地编译和发布代码,还可以使用AzureDevOps或GitHub或其他源代码存储库来经常通过Functions检入代码。在Functions项目的早期阶段,我们经常引入多重引用和NuGET程序包,它们似乎在本地运行,但在部署时不起作用。

  • 使用源代码存储库可以很容易地在安装新软件包之前提交更改,如果安装软件包导致无法部署的代码,则可以回滚。
  • 似乎很杂乱,但是由于NuGet版本控制,它会回到安装软件包之前的状态,而不像卸载该软件包那样简单,它可能很容易升级了其他软件包,在这种变化的Azure环境中,许多软件包作者选择了升级他们的软件包。 .Net Framework和.Net Core之间的资源,但并非总是做得很好,或者有时保留了一些.Net Framework元素,这些元素将导致Azure函数中的冲突。

有一些有趣的讨论可能会有所帮助:


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.