在将云服务(经典)部署到 Azure 时排除 FabricInternalServerError 或 ServiceAllocationFailure 故障

重要

从 2024 年 9 月 1 日开始,已弃用所有客户的云服务(经典版)。 从 2024 年 10 月开始,Microsoft 将停止并关闭任何正在运行的现有部署,数据将永久性丢失。 新部署应使用基于 Azure 资源管理器的新型部署模型 Azure 云服务(外延支持)

在本文中,你将在部署 Azure 云服务(经典)时排除分配故障(即结构控制器无法分配)。

将实例部署到云服务或者添加新的 Web 角色或辅助角色实例时,Azure 会分配计算资源。

在执行这些操作时,甚至在达到 Azure 订阅限制之前,有时可能会收到错误。

提示

规划服务的部署时,本信息可能也有用。

症状

在 Azure 门户中,导航到云服务(经典),并在侧栏中选择“操作日志(经典)”来查看日志。

图像显示“操作日志(经典)”边栏选项卡。

检查云服务(经典)的日志时,你将看到以下异常:

例外 错误消息
FabricInternalServerError 操作失败,错误代码为“InternalError”,错误消息为“服务器遇到了内部错误。 请重试请求。”
ServiceAllocationFailure 操作失败,错误代码为“InternalError”,错误消息为“服务器遇到了内部错误。 请重试请求。”

原因

FabricInternalServerError 和 ServiceAllocationFailure 是在结构控制器无法在群集中分配实例时出现的异常。 根本原因因云服务是否已固定而异。

注意

将第一个实例部署到云服务时(不管是部署到过渡环境还是生产环境),都会将该云服务固定到某个群集。

随着时间的推移,此资源池中的资源可能会被完全利用。 当固定的资源池中没有足够的资源可用时,如果云服务发出分配请求来请求更多资源,则该请求将导致分配失败

解决方案

在以下情况下,请按照有关分配失败的指导进行操作。

未固定到群集

第一次部署云服务(经典)时,还没有选择群集,因此云服务未固定。 Azure 可能出现部署失败,原因是:

  • 你选择了区域中没有的特定大小。
  • 区域中未提供不同角色所需的大小组合。

在此情况下遇到分配错误时,建议的操作过程是检查区域中的可用大小,并更改之前指定的大小。

  1. 可以在云服务(经典)产品页上查看区域中的可用大小。

    注意

    “产品”页将不会显示可用容量。 对于任何新的分配,Azure 应能够在该时间点选取区域中的最佳群集。

  2. 更新云服务(经典)的服务定义文件,以指定区域中的不同产品大小

已固定到群集

现有的云服务已固定到群集。 云服务(经典)的任何进一步部署都将在同一个群集中进行。

在此情况下遇到分配错误时,建议的操作过程是重新部署到新的云服务(经典)(并更新 CNAME)。

提示

这种解决方案可能会最成功,因为它允许平台从该区域的所有群集中进行选择。

注意

此解决方案应该不会导致停机。

  1. 将工作负荷部署到新的云服务(经典)。

    警告

    如果你不希望丢失与此部署槽位关联的 IP 地址,则可以使用解决方案 3 - 保留 IP 地址

  2. 更新 CNAME 或 A 记录,以将流量指向新的云服务(经典)。

  3. 没有流量流向旧站点后,即可删除旧的云服务(经典)。

有关进一步的修正步骤,请参阅云服务(经典)分配失败故障排除 | Microsoft Docs

后续步骤

有关更多分配失败解决方案和背景信息:

如果本文未解决你的 Azure 问题,请访问 Microsoft Developer Network (MSDN) 和 Stack Overflow 上的 Azure 论坛。 可将问题发布到这些论坛上,或发布到 X 上的 @AzureSupport。还可提交 Azure 支持请求。 若要提交支持请求,请在 Azure 支持页上,选择“获取支持”。