无法从 Visual Studio 2019 发布到 Azure Functions
Posted
技术标签:
【中文标题】无法从 Visual Studio 2019 发布到 Azure Functions【英文标题】:Cannot publish to Azure Functions from Visual Studio 2019 【发布时间】:2019-09-19 07:51:09 【问题描述】:以前我可以从 Visual Studio 发布到 Azure Functions,但最近我总是收到一条错误消息,说发布遇到错误。它指向一个日志文件,其内容如下:
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 中删除 Function App 并重新创建它。在 Visual Studio 中获取新的发布配置文件并再次尝试发布。还是一样的错误。 将 Visual Studio 2019 升级到最新版本 (16.2.5) 并再次尝试发布。还是一样的错误。请注意,我在同一解决方案中有一个 Azure 网站,我仍然可以将其发布到 Azure。
【问题讨论】:
Yoo 这也发生在我身上,但是该功能已发布,并且可以与您所做的更改一起正常工作。这只是一个视觉工作室错误 【参考方案1】:我对 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,但 curl 非常简单,请注意获取正确的 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,此设置被许多 ms doc 推荐为 1,因此请小心更改为 0,您可能会产生副作用。
【讨论】:
谢谢你。这可能与我遇到的问题相同,因为问题是零星的,这表明它与连接速度和超时有关 @SteveFarnaby,不客气。可能你正处于边缘。添加更多增加 zip 大小的代码/nuget,问题将是永久性的。如果您想要快速修复,您可以使用更快的连接。我临时。换到我的 4G 热点(48Mbits 上传),VS 发布很快就完成了,没有错误:) 而 ADSL 总是出错。您还可以从具有超快速连接(Azure 到 Azure)的 azure VM(与函数应用位于同一区域)发布。保重 ;)【参考方案2】:如果将 WEBSITE_RUN_FROM_PACKAGE
设置为 1,则可能会导致 Visual Studio 的部署出现问题:
打开 Azure 门户并检查是否是这种情况,如果是,则将其设置为 0。它应该可以工作。
这里是支持link
希望它有帮助,如果没有,请分享代码库,我会尝试在我的结尾进行复制。
【讨论】:
我已经尝试了上述方法,但仍然遇到同样的发布失败。 还有其他人对此有答案吗?我仍然有类似的问题。【参考方案3】:对我来说,它未能部署到 V3,但适用于 V2
【讨论】:
以上是关于无法从 Visual Studio 2019 发布到 Azure Functions的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2019 无法识别从 GitHub 提取的新文件
Visual Studio 2019 IntelliSense 无法识别更改的值
无法从 Visual Studio 2019 16.6.2 调试 Blazor 托管的 webassembly 3.2.0
从 Visual Studio 2019 Xamarin.iOS 连接到 Mac 的代理问题