将 Service Fabric 应用程序发布到 Azure 时操作超时
Operation timed out publishing Service Fabric application to Azure
当我尝试将我的 Service Fabric 应用程序发布到 Azure 群集时,我收到以下错误消息:
3>Copy-ServiceFabricApplicationPackage : Operation timed out.
3>At C:\Program Files\Microsoft SDKs\Service
3>Fabric\Tools\PSModule\ServiceFabricSDK\Publish-NewServiceFabricApplication.ps1:230 char:9
3>+ Copy-ServiceFabricApplicationPackage -ApplicationPackagePath ...
3>+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3> + CategoryInfo : OperationTimeout: (:) [Copy-ServiceFabricApplicationPackage], TimeoutException
3> + FullyQualifiedErrorId : CopyApplicationPackageErrorId,Microsoft.ServiceFabric.Powershell.CopyApplicationPackage
3>
3>Finished executing script 'Deploy-FabricApplication.ps1'.
3>Time elapsed: 00:12:45.2589165
显然,发布脚本中有一个硬编码的 10 分钟超时,您可以在此处阅读:https://github.com/Azure/service-fabric-issues/issues/10
此超时将在即将发布的版本中删除,但与此同时我有哪些选择?有没有一种方法可以按服务发布我的应用程序服务?
欢迎提出任何建议!
我已经通过 运行ning Azure 虚拟机解决了这个问题。我已经安装了 Visual Studio 2015 社区和服务结构 SDK。
然后我使用 Visual Studio Online 来托管我的代码。我在本地构建和测试,当我高兴时,在线提交 visual studio,然后将 RDP 连接到我的构建机器上,然后从那里拉取、构建和部署。
我实际上更进一步创建了构建和部署 powershell 脚本,所以我不需要 运行 visual studio.
此问题已在 Service Fabric SDK 2.5.216 版中得到解决。
在发布配置文件架构中,您现在可以:
- 压缩包加速传输
- 将超时持续时间设置为大于 10 分钟的值
将以下行添加到 PublishProfiles\Cloud.xml
文件以启用压缩并将超时从 10 分钟更改为 60 分钟:
<CopyPackageParameters CopyPackageTimeoutSec="3600" CompressPackage="true" />
我对 Andrew Shepherd 的建议采用了类似的方法。编辑位于 <MyServiceFabricApp>\Scripts\Deploy-FabricApplication.ps1
的 powershell 部署文件并将 $CopyPackageTimeoutSec 变量更改为 3600。代码片段如下所示:
Param
(
....
[int]
$CopyPackageTimeoutSec = 3600
)
...
当我尝试将我的 Service Fabric 应用程序发布到 Azure 群集时,我收到以下错误消息:
3>Copy-ServiceFabricApplicationPackage : Operation timed out.
3>At C:\Program Files\Microsoft SDKs\Service
3>Fabric\Tools\PSModule\ServiceFabricSDK\Publish-NewServiceFabricApplication.ps1:230 char:9
3>+ Copy-ServiceFabricApplicationPackage -ApplicationPackagePath ...
3>+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3> + CategoryInfo : OperationTimeout: (:) [Copy-ServiceFabricApplicationPackage], TimeoutException
3> + FullyQualifiedErrorId : CopyApplicationPackageErrorId,Microsoft.ServiceFabric.Powershell.CopyApplicationPackage
3>
3>Finished executing script 'Deploy-FabricApplication.ps1'.
3>Time elapsed: 00:12:45.2589165
显然,发布脚本中有一个硬编码的 10 分钟超时,您可以在此处阅读:https://github.com/Azure/service-fabric-issues/issues/10
此超时将在即将发布的版本中删除,但与此同时我有哪些选择?有没有一种方法可以按服务发布我的应用程序服务?
欢迎提出任何建议!
我已经通过 运行ning Azure 虚拟机解决了这个问题。我已经安装了 Visual Studio 2015 社区和服务结构 SDK。
然后我使用 Visual Studio Online 来托管我的代码。我在本地构建和测试,当我高兴时,在线提交 visual studio,然后将 RDP 连接到我的构建机器上,然后从那里拉取、构建和部署。
我实际上更进一步创建了构建和部署 powershell 脚本,所以我不需要 运行 visual studio.
此问题已在 Service Fabric SDK 2.5.216 版中得到解决。
在发布配置文件架构中,您现在可以:
- 压缩包加速传输
- 将超时持续时间设置为大于 10 分钟的值
将以下行添加到 PublishProfiles\Cloud.xml
文件以启用压缩并将超时从 10 分钟更改为 60 分钟:
<CopyPackageParameters CopyPackageTimeoutSec="3600" CompressPackage="true" />
我对 Andrew Shepherd 的建议采用了类似的方法。编辑位于 <MyServiceFabricApp>\Scripts\Deploy-FabricApplication.ps1
的 powershell 部署文件并将 $CopyPackageTimeoutSec 变量更改为 3600。代码片段如下所示:
Param
(
....
[int]
$CopyPackageTimeoutSec = 3600
)
...