Azure Stack Hub 上的应用服务 26R1 发行说明

这些发行说明介绍了 Azure Stack Hub 26R1 Azure 应用服务中的改进和修复。 它们还描述了任何已知问题。 已知问题分为与部署和更新过程直接相关的问题,以及生成问题(安装后)。

Important

在部署或更新Azure 应用服务资源提供程序之前,如有必要,请将Azure Stack Hub更新到受支持的版本。 请务必阅读资源提供程序的发行说明,了解可能影响部署的新功能、修补程序和任何已知问题。

支持的最低 Azure Stack Hub 版本 应用服务资源提供程序版本
2311 及更高版本 26R1 安装程序,26R1 脱机包 (发行说明)
2311 及更高版本 25R1 安装程序,25R1 脱机包 (发行说明)

构建参考

Azure Stack Hub 26R1 内部版本号上的应用服务为 102.20.2.2。

新变化是什么?

Azure Stack Hub 26R1 上的Azure 应用服务为Azure Stack Hub带来新的更新。 无需先部署 25R1,即可直接更新到 26R1。

  • 对应用程序运行时的更新,包括.NET和Java。
  • Azure Stack Hub 资源提供程序上的应用服务更新。

Important

对于 Azure Stack Hub 26R1 上的 Azure 应用服务,操作员必须通过 完整脱机安装或升级 方式进行部署或更新。 在部署或更新文档中提供了安装程序、辅助脚本和离线包压缩文件的下载链接。

Prerequisites

在开始部署之前,请参阅“开始之前” 文档 。

在开始将 Azure Stack Azure 应用服务 升级到 26R1 之前:

  • 确保 Azure Stack Hub 已更新到 1.2311.1.22 或更高版本。

  • 确保 Azure Stack Hub 管理门户的 Azure 应用服务管理中所有角色都处于 就绪 状态。

  • 在Azure Stack Hub管理门户中使用Azure 应用服务管理来备份应用服务机密。

  • 备份应用服务和 SQL Server 主数据库:

    • AppService_Hosting;
    • AppService_Metering;
    • 主节点
  • 备份租户应用的内容文件共享。

    Important

    云操作员负责文件服务器和 SQL Server 的维护和操作。 资源提供程序不管理这些资源。 云操作员负责备份应用程序服务数据库和租户内容文件共享。

  • 从市场平台发布自定义脚本扩展版本 1.9.3。

更新

Azure Stack Update 26R1 上的Azure 应用服务包括以下改进和修复:

  • 对应用服务租户门户、管理员门户、Functions 门户和 Kudu 工具的更新。 这些更新与 Azure Stack 门户 SDK 版本一致。

  • 更新核心服务以提高可靠性和错误消息,以便更轻松地诊断常见问题。

  • 对以下应用程序框架和工具的更新:

    • .NET Framework 3.5 和 4.8.1
    • ASP.NET Core
      • 10.0.11
      • 10.0.8
      • 8.0.30
      • 8.0.303
      • 8.0.424
    • Node.js
      • 22.23.1
    • npm
      • 8.1.0
      • 10.9.8
      • 11.16.0
    • 爪哇岛
      • 1.8.472.8
      • 11.0.30.7
      • 17.0.18
      • 21.0.10
      • 25.0.2
    • Tomcat
      • 9.0.109
      • 9.0.113
      • 9.0.115
      • 9.0.116
      • 10.1.46
      • 10.1.50
      • 10.1.53
      • 11.0.11
      • 11.0.15
      • 11.0.20
    • 已将 Kudu 更新为 2026.08.1.2
    • 持续提升无障碍性和可用性的更新
  • 对所有角色的基础操作系统的更新:

  • Windows Server 的累积更新现在应用于控制器角色,作为部署和升级的一部分。

  • 已启用密码套件同步,并会保留客户在支持团队协助下进行干预后所做的任何修改。

此版本中已修复的问题

此版本中新修复的问题:

  • 由于角色发现缓慢,控制器启动受阻

  • 通过减少锁定和不必要的保存来提高数据库性能

更新前的步骤

  • 从 Azure Stack Hub 2022 H1 更新中的 Azure 应用服务 开始,字母 K 现已成为保留的 SKU 字母。 如果定义使用字母 K 的自定义 SKU,请在升级之前联系支持人员帮助解决此问题。

查看此次更新的已知问题,并采取任何规定的措施。

部署后步骤

Important

如果使用 SQL Always On 实例配置应用服务资源提供程序, 则必须将appservice_hosting和appservice_metering数据库添加到可用性组。 添加数据库后, 必须 同步这些数据库,以防止在数据库故障转移期间丢失服务。

已知问题(更新)

  • 在您将appservice_hosting和appservice_metering数据库转换为独立数据库的情况下,如果登录名未成功迁移为独立用户,升级可能会失败。

    那些在部署后将appservice_hosting和appservice_metering数据库转换为受限数据库,但未能成功将数据库登录名迁移到受限用户的客户可能会遇到升级失败。

    在将 Azure Stack Hub 上的 Azure 应用服务安装升级到 2020 年第三季度版本之前,客户必须在托管 appservice_hosting 和 appservice_metering 的 SQL Server 上执行以下脚本。 此脚本是不可破坏的,不会导致停机。

    必须在满足以下条件的情况下运行此脚本:

    • 由具有系统管理员权限的用户(例如 SQL SA(系统管理员)帐户)执行;

    • 如果使用 SQL Always On,请确保从包含了以下格式的所有应用程序服务登录名的 SQL 实例中运行该脚本:

      • appservice_hosting_FileServer
      • 应用服务_托管_托管管理员
      • appservice_hosting_负载均衡器
      • 应用服务托管_操作
      • 应用服务_托管_发布者
      • appservice_hosting_SecurePublisher
      • appservice_hosting_WebWorkerManager
      • appservice_metering_Common
      • appservice_metering_Operations (应用服务计量操作)
      • 所有 WebWorker 登录名,其格式为 WebWorker_<实例 IP 地址>
              USE appservice_hosting
              IF EXISTS(SELECT * FROM sys.databases WHERE Name=DB_NAME() AND containment = 1)
              BEGIN
              DECLARE @username sysname ;  
              DECLARE user_cursor CURSOR  
              FOR
                  SELECT dp.name
                  FROM sys.database_principals AS dp  
                  JOIN sys.server_principals AS sp
                      ON dp.sid = sp.sid  
                      WHERE dp.authentication_type = 1 AND dp.name NOT IN ('dbo','sys','guest','INFORMATION_SCHEMA');
                  OPEN user_cursor  
                  FETCH NEXT FROM user_cursor INTO @username  
                      WHILE @@FETCH_STATUS = 0  
                      BEGIN  
                          EXECUTE sp_migrate_user_to_contained
                          @username = @username,  
                          @rename = N'copy_login_name',  
                          @disablelogin = N'do_not_disable_login';  
                      FETCH NEXT FROM user_cursor INTO @username  
                  END  
                  CLOSE user_cursor ;  
                  DEALLOCATE user_cursor ;
                  END
              GO
      
              USE appservice_metering
              IF EXISTS(SELECT * FROM sys.databases WHERE Name=DB_NAME() AND containment = 1)
              BEGIN
              DECLARE @username sysname ;  
              DECLARE user_cursor CURSOR  
              FOR
                  SELECT dp.name
                  FROM sys.database_principals AS dp  
                  JOIN sys.server_principals AS sp
                      ON dp.sid = sp.sid  
                      WHERE dp.authentication_type = 1 AND dp.name NOT IN ('dbo','sys','guest','INFORMATION_SCHEMA');
                  OPEN user_cursor  
                  FETCH NEXT FROM user_cursor INTO @username  
                      WHILE @@FETCH_STATUS = 0  
                      BEGIN  
                          EXECUTE sp_migrate_user_to_contained
                          @username = @username,  
                          @rename = N'copy_login_name',  
                          @disablelogin = N'do_not_disable_login';  
                      FETCH NEXT FROM user_cursor INTO @username  
                  END  
                  CLOSE user_cursor ;  
                  DEALLOCATE user_cursor ;
                  END
              GO
      
  • 必须将新的重定向网址添加到已创建的标识应用程序中,以支持单一登录 (SSO) 场景(例如 Kudu)

检索身份验证应用程序客户端 ID

  1. 在Azure Stack管理门户中,转到 ControllersNSG 网络安全组。
  2. 默认情况下,所有应用服务基础结构角色都禁用远程桌面访问。 将 Inbound_Rdp_3389 规则操作更改为 “允许 访问”。
  3. 转到包含应用服务资源提供程序部署的资源组。 默认情况下,资源组以格式 AppService.<region>命名,并且已连接到 CN0-VM。
  4. 启动 Web 云管理控制台。
  5. 检查 Web 云管理控制台 -> Web 云 屏幕,并验证两个 控制器 是否已 准备就绪。
  6. 选择 “设置”。
  7. 找到 ApplicationClientId 设置并复制值。
  8. 在Azure Stack管理门户中,返回到 ControllersNSG 网络安全组。
  9. 更改 Inbound_Rdp_3389 规则以拒绝访问。

使用新的重定向 URI 更新 Entra ID 应用程序

  1. 登录到 Azure 门户,访问在部署期间将Azure Stack Hub连接到的Entra ID租户。
  2. 使用Azure门户转到Microsoft Entra ID。
  3. 在租户中搜索之前检索的 ApplicationClientId。
  4. 选择应用程序。
  5. 选择身份验证。
  6. 将另一个 重定向 URI 添加到现有列表: https://azsstamp.sso.appservice.<region>.<DomainName>.<extension>。

已知问题(安装后)

  • 在现有虚拟网络中部署应用服务时,工作器实例无法连接到文件服务器。 文件服务器仅在专用网络上可用,如Azure Stack部署文档中Azure 应用服务中所述。

    在初始部署期间,如果选择部署到现有的虚拟网络中,并使用内部 IP 地址连接到文件服务器,则必须添加一条出站安全规则,以允许工作器子网与文件服务器之间的 SMB(服务器消息块)流量。 在管理门户中,转到 WorkersNsg,然后添加一个具有以下属性的出站安全规则:

    • 源:任意
    • 源端口范围: *
    • 目的地:IP 地址
    • 目标 IP 地址范围:文件服务器的 IP 范围
    • 目标端口范围:445
    • 协议:TCP
    • 操作:允许
    • 优先级:700
    • 名称:Outbound_Allow_SMB445
  • 若要消除工作器实例与文件服务器通信时的延迟,请将以下规则添加到 Worker NSG(网络安全组)中。 使用 Active Directory 保护文件服务器时,此规则允许出站 LDAP(轻量目录访问协议)和 Kerberos 流量发送到你的 Active Directory 域控制器。 例如,如果使用快速入门模板部署 HA 文件服务器并SQL Server。

    在管理门户中,转到 WorkersNsg,然后添加一个具有以下属性的出站安全规则:

    • 源:任意
    • 源端口范围: *
    • 目的地:IP 地址
    • 目标 IP 地址范围:AD 服务器的 IP 范围,例如快速入门模板 10.0.0.100、10.0.0.101
    • 目标端口范围:389;88
    • 协议:任意
    • 操作:允许
    • 优先级:710
    • 名称:Outbound_Allow_LDAP_and_Kerberos_to_Domain_Controllers

云管理员在操作基于 Azure Stack 的 Azure 应用程序服务时的已知问题

  • 断开连接的环境中不支持自定义域。

    应用服务针对公共 DNS(域名系统)终结点执行域所有权验证。 因此,断开连接的方案中不支持自定义域。

  • 不支持对 Web 和 Function Apps 进行虚拟网络集成。

    为 Web 应用和函数应用添加虚拟网络集成的功能出现在 Azure Stack Hub 门户中。 如果租户尝试对其进行配置,则会收到内部服务器错误。 Azure Stack Hub 上的 Azure 应用服务不支持此功能。

后续步骤