Azure函数发布失败

b5lpy0ml  于 2023-06-24  发布在  其他
关注(0)|答案(2)|浏览(96)

当我尝试发布我的Azure函数时,我收到一条发布失败消息。我以前有过这个信息,过了一段时间就消失了。
[更新]我了解Azure Functions有一个冷启动,并在5分钟后过期。我发现如果我在得到错误后等待5分钟,那么我可以在没有错误的情况下发布。所以出现错误是有道理的,因为功能App还“活”着
我一直在Azure Portal中运行该函数
我这样想对吗?如果是这样,一个更好的信息将是很好的。
下次发生这种情况时,我将尝试从门户网站内停止该功能。

a0zr77ik

a0zr77ik1#

在VS中发布Azure函数MSDeploy失败可能由许多点引起,我们可以在VS输出中看到更多细节,其中通常有一些链接将我们引导到Web Deploy Error Codes
cold start是最近在消费计划上创建的尚未调用的函数的延迟增加,部署应该与此无关。
根据您的描述,我猜您可能会遇到ERROR_FILE_IN_USE。

Web Deploy cannot modify the file 'xxx' on the destination because it is locked by an external process.

AppOffline已在Azure函数中实现,只需将下面的设置添加到发布配置文件(funcappname - Web Deploy.pubxml),Azure将解锁正在使用的文件以允许部署工作。这样,我们就不需要手动停止和启动函数app。

<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>

可能有其他错误导致函数部署失败。
对于ERROR_COULD_NOT_CONNECT_TO_REMOTESVCERROR_DESTINATION_NOT_REACHABLE,请确保网络正常,并且没有防火墙/代理限制。
对于ERROR_CONNECTION_TERMINATED,检查Fiddler是否打开。
在我们排除机器上可能的原因后,尝试以下方法。
1.已经看到几个相关的问题解决了,没有采取任何行动,即等待一段时间或重试几天后。因此,如果我们不着急的话,稍后重试可能是一个解决方案。
1.在门户概述中,Reset publish credentials,然后Download publish profile。删除旧的发布配置文件并导入新的配置文件以再次发布。
1.在VS发布步骤中,选中Run from package file(recommended)以避免使用MSDeploy。
1.删除与该功能相关的所有旧资源。然后使用新的应用服务计划和存储创建一个全新的功能应用。尝试发布到此新应用。
1.关于门户网站Help + support服务,新的支持请求获得官方帮助。

ztigrdn8

ztigrdn82#

在我的例子中,我已经将.NET版本从6升级到7。
我忽略了一个小错误,请看这里:Publish error: Found multiple publish output files with the same relative path
此错误不在webdeploy日志中,该日志包含System.AggregationException,但没有其他详细信息。事后看来,很明显,聚合是项目中的库冲突,而webdeploy则崩溃了;这是之前的事情可能导致问题(depsite我的代码构建和运行良好)。
确保在Visual studio的输出窗格(我使用的是VS 2022)和webdeploy本身的日志中检查其他错误。
如果一切都错了;我想我会建议尝试一个干净的项目,看看是否有效,然后比较项目。

相关问题