0

我正在编写一个脚本来部署我的 Azure Web 应用程序。

当我拥有源代码并想要编译并将其上传到 WebApp 时,Msbuild 非常有用。在其他情况下,我想上传不包含源代码但仅包含 dll 和二进制文件的构建 drop。然后我压缩目录并使用以下命令上传 zip:

Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method PUT -InFile $zipFilePath -ContentType "multipart/form-data"

正在上传很多文件,因此我得到了超时:

Invoke-RestMethod : 500 - 请求超时。500 - 请求超时。Web 服务器未能在指定时间内响应。

我发现负载均衡器的限制为 230 秒,但我不确定如何更改它。我在我的应用程序设置中尝试将 SCM_COMMAND_IDLE_TIMEOUT 设置为 600,但我仍然得到相同的超时。

我的问题是: 1. 如何更改 Azure WebJob 中的负载均衡器超时并避免该异常?2. 有没有更好/更简单的方法将 zip 上传到 Azure WebJob?

4

1 回答 1

0

如何更改 Azure WebJob 中的负载均衡器超时并避免该异常?

据我了解,您只能为云服务和虚拟机配置 TCP 空闲超时。但是正如文档中提到的那样:

使连接保持更长时间处于活动状态的一种常见做法是使用TCP Keep-alive (您可以在此处找到 .NET 示例)。当在连接上没有检测到活动时发送数据包。通过保持持续的网络活动,空闲超时值永远不会被击中,并且连接会保持很长一段时间。

我检查了Invoke-RestMethod,发现KeepAlive默认启用,TimeoutSec默认为无限超时。

有没有更好/更简单的方法将 zip 上传到 Azure WebJob?

您可以使用 ftp 工具(例如FileZilla)并上传您的二进制文件,如下所示:

在此处输入图像描述

此外,您可以利用Kudu 控制台或 azure 门户。有关更多详细信息,您可以参考有关部署的WebJobs 。

于 2017-07-12T03:21:12.187 回答