我有一个基本的Azure Function应用。当我尝试发布该应用程序时,收到一条错误消息:“错误:尝试通过https:// ...发布ZIP文件的操作失败,并显示HTTP状态代码RequestTimeout。”。
此应用是.NET Standard应用。我遵循了说明here。区别在于,我的应用程序具有事件中心触发器,而不是文档中显示的Http触发器。我不明白为什么在部署期间会出现超时。我也不知道该如何克服。
我在做什么错了?
更新
这是日志。
1>------ Build started: Project: MyProject.Functions, Configuration: Release Any CPU ------
1>MyProject.Functions -> C:\MyProject\MyProject.Functions\bin\Release\netcoreapp2.1\bin\MyProject.Functions.dll
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Publish Started
MyProject.Functions -> C:\MyProject\MyProject.Functions\bin\Release\netcoreapp2.1\bin\MyProject.Functions.dll
MyProject.Functions -> C:\MyProject\MyProject.Functions\obj\Release\netcoreapp2.1\PubTmp\Out\
Publishing C:\MyProject\MyProject.Functions\obj\Release\netcoreapp2.1\PubTmp\MyProject.Functions - 20181101105531356.zip to https://my-project.scm.azurewebsites.net/api/zipdeploy...
C:\Users\me\.nuget\packages\microsoft.net.sdk.functions\1.0.23\build\netstandard1.0\Microsoft.NET.Sdk.Functions.Publish.ZipDeploy.targets(42,5): error : The attempt to publish the ZIP file through https://my-project.scm.azurewebsites.net/api/zipdeploy failed with HTTP status code RequestTimeout. [C:\MyProject\MyProject.Functions\MyProject.Functions.csproj]
答案 0 :(得分:2)
在我的例子中,这个错误是因为我的 .csproj 文件中的包版本。更新后没有错误,发布成功。
答案 1 :(得分:1)
据此: https://github.com/projectkudu/kudu/wiki/Deploying-from-a-zip-file
您应该能够将?isAsync=true
传递到zipdeploy网址(因此它将是:'https://my-project.scm.azurewebsites.net/api/zipdeploy?isAsync=true'
此请求的解析速度更快,没有超时,然后您可以从响应中获取位置标头,然后可以对其进行轮询以查看部署状态。
答案 2 :(得分:0)
就我而言,这是两个问题:
1] Visual Studio和Azure都不可靠。工作场景中的超时仍然有些规律,在糟糕的一天中,发生的时间对我来说大约占50-75%。这是一个具有80mb功能的应用程序,不是很大,而且我具有千兆位互联网。
2]有人删除了存储的文件共享。我必须修复WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
以指向正确的存储连接字符串,并且必须更新WEBSITE_CONTENTSHARE
以指向有效的文件共享名,该文件名必须在与{{ 1}}连接字符串。
如果您使用的是开发和生产功能插槽,我建议进行WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
和WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
部署插槽设置,这样您就可以链接到生产和开发存储环境。如果您正在使用表或Blob存储并且不想在所有表名或键之前添加前缀或后缀,这将特别方便。我认为这两个设置默认情况下应为广告位。
完成这些更改后,我就可以发布,但仍会处理间歇性超时。
使用Azure函数发布的错误消息对于不存在的消息是有害的,任何类型的配置或资源错误都只会导致超时错误。
答案 3 :(得分:0)
使用Visual Studio时遇到相同的问题。非常沮丧。 但是然后我只使用了VS创建和使用的zip文件
az functionapp deployment source config-zip -g <resource_group> -n \
<app_name> --src <zip_file_path>
要发布。
您可以在中找到更多选项 https://docs.microsoft.com/en-us/azure/azure-functions/deployment-zip-push
答案 4 :(得分:0)
我最近遇到了同样的问题。
我不确定它们是否相关,但是在将NuGet包“ Microsoft.NET.Sdk.Functions”更新为v3.0.7之后,它开始正常工作。
答案 5 :(得分:0)