在将云服务(经典)部署到 Azure 时排除 FabricInternalServerError 或 ServiceAllocationFailure 故障
重要
从 2024 年 9 月 1 日开始,已弃用所有客户的云服务(经典版)。 从 2024 年 10 月开始,Microsoft 将停止并关闭任何正在运行的现有部署,数据将永久性丢失。 新部署应使用基于 Azure 资源管理器的新型部署模型 Azure 云服务(外延支持)。
在本文中,你将在部署 Azure 云服务(经典)时排除分配故障(即结构控制器无法分配)。
将实例部署到云服务或者添加新的 Web 角色或辅助角色实例时,Azure 会分配计算资源。
在执行这些操作时,甚至在达到 Azure 订阅限制之前,有时可能会收到错误。
提示
规划服务的部署时,本信息可能也有用。
症状
在 Azure 门户中,导航到云服务(经典),并在侧栏中选择“操作日志(经典)”来查看日志。
检查云服务(经典)的日志时,你将看到以下异常:
例外 | 错误消息 |
---|---|
FabricInternalServerError | 操作失败,错误代码为“InternalError”,错误消息为“服务器遇到了内部错误。 请重试请求。” |
ServiceAllocationFailure | 操作失败,错误代码为“InternalError”,错误消息为“服务器遇到了内部错误。 请重试请求。” |
原因
FabricInternalServerError 和 ServiceAllocationFailure 是在结构控制器无法在群集中分配实例时出现的异常。 根本原因因云服务是否已固定而异。
注意
将第一个实例部署到云服务时(不管是部署到过渡环境还是生产环境),都会将该云服务固定到某个群集。
随着时间的推移,此资源池中的资源可能会被完全利用。 当固定的资源池中没有足够的资源可用时,如果云服务发出分配请求来请求更多资源,则该请求将导致分配失败。
解决方案
在以下情况下,请按照有关分配失败的指导进行操作。
未固定到群集
第一次部署云服务(经典)时,还没有选择群集,因此云服务未固定。 Azure 可能出现部署失败,原因是:
- 你选择了区域中没有的特定大小。
- 区域中未提供不同角色所需的大小组合。
在此情况下遇到分配错误时,建议的操作过程是检查区域中的可用大小,并更改之前指定的大小。
可以在云服务(经典)产品页上查看区域中的可用大小。
注意
“产品”页将不会显示可用容量。 对于任何新的分配,Azure 应能够在该时间点选取区域中的最佳群集。
更新云服务(经典)的服务定义文件,以指定区域中的不同产品大小。
已固定到群集
现有的云服务已固定到群集。 云服务(经典)的任何进一步部署都将在同一个群集中进行。
在此情况下遇到分配错误时,建议的操作过程是重新部署到新的云服务(经典)(并更新 CNAME)。
提示
这种解决方案可能会最成功,因为它允许平台从该区域的所有群集中进行选择。
注意
此解决方案应该不会导致停机。
将工作负荷部署到新的云服务(经典)。
- 有关更多说明,请参阅如何创建和部署云服务(经典)指南。
警告
如果你不希望丢失与此部署槽位关联的 IP 地址,则可以使用解决方案 3 - 保留 IP 地址。
更新 CNAME 或 A 记录,以将流量指向新的云服务(经典)。
- 有关进一步说明,请参阅为 Azure 云服务(经典)配置自定义域名指南。
没有流量流向旧站点后,即可删除旧的云服务(经典)。
- 有关进一步的说明,请参阅删除部署和云服务(经典)指南。
- 若要查看云服务(经典)中的网络流量,请参阅云服务(经典)监视简介。
有关进一步的修正步骤,请参阅云服务(经典)分配失败故障排除 | Microsoft Docs。
后续步骤
有关更多分配失败解决方案和背景信息:
如果本文未解决你的 Azure 问题,请访问 Microsoft Developer Network (MSDN) 和 Stack Overflow 上的 Azure 论坛。 可将问题发布到这些论坛上,或发布到 X 上的 @AzureSupport。还可提交 Azure 支持请求。 若要提交支持请求,请在 Azure 支持页上,选择“获取支持”。