当我尝试发布我的 Azure 函数时,我收到一条“发布失败”消息。
我以前曾收到过此消息,但在一段时间后它就消失了。
[更新]
据我了解,Azure Functions 具有冷启动功能,并会在 5 分钟后过期。
我发现如果我在收到错误后等待 5 分钟,那么我可以在没有错误的情况下发布。因此,发生错误是有道理的,因为函数应用程序仍然“活动”
我一直在 Azure 门户中运行该函数
我的这个想法正确吗?
如果是的话,更好的消息会很好。
下次发生这种情况时,我将尝试从门户内停止该功能。
VS 中的 Azure Function MSDeploy 发布失败可能是由很多原因引起的,我们可以在 VS 输出中看到更多详细信息,其中通常有一些链接引导我们Web 部署错误代码 https://learn.microsoft.com/en-us/iis/publish/troubleshooting-web-deploy/web-deploy-error-codes.
冷启动 https://blogs.msdn.microsoft.com/appserviceteam/2018/02/07/understanding-serverless-cold-start/是最近在消费计划中创建的函数的延迟增加,部署应该与此无关。
根据你的描述,我猜你可能会遇到错误_文件_使用中 https://learn.microsoft.com/en-us/iis/publish/troubleshooting-web-deploy/web-deploy-error-codes#errorfileinuse.
Web Deploy cannot modify the file 'xxx' on the destination because it is locked by an external process.
应用离线 https://github.com/Azure/azure-functions-host/pull/3269已在Azure功能中实现,只需添加以下设置即可发布配置文件(funcappname - Web Deploy.pubxml
),Azure 将解锁正在使用的文件以允许部署工作。这样我们就不需要手动停止和启动Function App了。
<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
可能还有其他错误导致功能部署失败。
For ERROR_COULD_NOT_CONNECT_TO_REMOTESVC
and ERROR_DESTINATION_NOT_REACHABLE
,确保网络良好并且没有防火墙/代理限制。
For ERROR_CONNECTION_TERMINATED
,检查Fiddler是否打开。
当我们排除机器上的可能原因后,请尝试以下方法。
- 已经看到几个相关问题得到解决但没有采取任何行动,即等待一段时间或几天后重试。因此,如果我们不着急的话,稍后重试可能是一个解决方案。
- 在门户概述上,
Reset publish credentials
then Download publish profile
。删除旧的发布配置文件并导入新的发布配置文件以再次发布。
- 在 VS 发布步骤中,检查
Run from package file(recommended)
以避免使用 MSDeploy。
- 删除与该功能相关的所有旧资源。然后使用新的应用程序服务计划和存储创建一个全新的功能应用程序。尝试发布到这个新应用程序。
- 在门户上
Help + support
服务,新的支持请求以获得官方帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)