当我尝试使用Visual Studio发布函数时,出现以下错误消息,您知道如何解决此问题吗?
System.AggregateException:发生一个或多个错误。 -> System.Exception:发布遇到错误。我们无法 确定错误原因。检查输出日志以了解更多 细节。 ---内部异常堆栈跟踪的结尾--- System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) System.Threading.Tasks.Task.Wait(Int32毫秒超时, 的CancellationToken cancelToken() Microsoft.Publish.Framework.Model.DefaultPublishSteps。<> c__DisplayClass26_0.b__2() 在System.Threading.Tasks.Task`1.InnerInvoke()在 System.Threading.Tasks.Task.Execute() ---从上一个引发异常的位置开始的堆栈跟踪- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务) Microsoft.Publish.Framework.Model.DefaultPublishSteps.d__23.MoveNext() ---从上一个引发异常的位置开始的堆栈跟踪- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务) Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext() --->(内部异常#0)System.Exception:发布遇到错误。我们无法确定错误的原因。检查 输出日志以获取更多详细信息。 <---
System.Exception:发布遇到错误。我们无法 确定错误原因。检查输出日志以了解更多 细节。
==================
答案 0 :(得分:4)
您可以尝试this
完全从Azure Functions中删除WEBSITE_RUN_FROM_PACKAGE设置 来自Azure门户的应用程序设置。
答案 1 :(得分:3)
这是Visual Studio超时问题,这意味着您的代码和其他一些设置不是解决问题的关键。发生此错误的原因是Visual设置了发布的超时限制。 (文件太大或互联网速度不稳定)
如果您的部署项目不太大,则可以等到网络速度稳定后再尝试运行它。当然,您也可以尝试其他部署方法来避免此问题,例如zip deploy。
答案 2 :(得分:2)
我遇到了同样的奇怪问题-这是由于我的代码中的错误引起的-
我的代码中包含for (i in 1:5) {
message('\r', i, appendLF = FALSE)
}
语句,因此可以在计算机上进行调试,但是发布(使用Release配置文件)失败。
单击“输出”选项卡,您应该看到真正的问题。
答案 3 :(得分:1)
以上都不适合我。所以我只是重新下载了发布配置文件并将其导入到 VS 中,并且它起作用了。
很奇怪,但以防万一以上都不适合您。可能值得一试。
答案 4 :(得分:0)
没有在像GitHub这样的播放表单上共享您的项目,我们真的很难提供具体建议,变量太多,NuGET包和引用的组合如此之多,以至于您的项目可能会发生冲突,将导致此错误。
尤其是对于v2函数,我已经多次遇到此问题或类似问题。 “功能”的最大因素之一是v1和v2之间的竞争概念。
当您使用Visual Studio发布向导在Azure中创建目标资源时,如果您为此付出了一段时间的努力,那么它往往会获得更大的成功,我建议您按照此过程进行操作,以作为概念验证(如果没有)其他:
此建议在VS2017和2019中同样有效
作为一般经验法则,使用Azure Functions可获得一般成功:
- 将v1用于.Net Framework项目,或者如果您的参考项目或NuGET包的 ANY 具有.Net Fx依赖性。 (因此是.Net 4 + ...或不是 .Net Core 的任何东西。)
即使那些依赖项针对多个项目,使用 Function 部署也会失败,因为在部署过程中评估NuGET依赖项时,它无法正确检测正确的平台。
- 仅将v2 用于 .Net Core 项目,请确保您的引用也仅是 .Net core
以增量方式编译和发布代码,还可以使用AzureDevOps或GitHub或其他源代码存储库来经常通过Functions检入代码。在Functions项目的早期,我们经常引入多重引用和NuGET程序包,它们似乎在本地运行,但在我们部署时不起作用。
一些有趣的讨论可能会有所帮助:
答案 5 :(得分:0)
解决方案是更新到最新的SDK。
答案 6 :(得分:0)
默认超时为100秒。因此,发布会在100秒后失败。 上传blob时,我自己的代码中也遇到了同样的问题,这就是我将其修复为5分钟的方法。因此,Visual Studio可以使用相同的代码对其进行修复。
_client.Timeout = TimeSpan.FromMinutes(5);
CancellationTokenSource source = new CancellationTokenSource(TimeSpan.FromMinutes(5));
CancellationToken token = source.Token;
HttpResponseMessage responseMessage = await _client.PostAsync(url, content, token);
答案 7 :(得分:0)
我找到了一种解决方法,因为这些东西都不适合我。有点奇怪,请多多包涵。
就是这样..
答案 8 :(得分:0)
我安装了最新的 .NET Core (5.0) 并将我的项目升级到面向 .NET Core 5.0。当我尝试发布我的项目时,我遇到了这个错误。我忘记在发布窗口中将“目标框架”更改为“net5.0”。
答案 9 :(得分:0)
删除包部署有时会像@Sajeetharan 建议的那样工作,但并非总是如此。
您应该首先尝试在门户上停止主机。然后从 VS 发布,这对我有用。最后重启主机。
不知道为什么现在需要手动重启,可能是一个 Durable Task 正在运行,阻止了自动重启。
答案 10 :(得分:0)
在大多数情况下,删除 WEBSITE_RUN_FROM_PACKAGE 对我有用。 但有时,它不起作用.. 这里有一些事情,我在发布之前要确保。
答案 11 :(得分:0)
我在服务依赖项列表中使用了带有黄色标志的 Application Insights。由于我不使用此工具,我只是将其删除并修复了我的发布。