升级 Microsoft Azure 包:网站

 

适用于:Windows Azure Pack

如何升级到 Microsoft Azure 包网站版本 2 更新 2

若要将 Microsoft Azure 包网站升级到版本 2 更新 2,可以使用 Microsoft 更新或通过运行 Microsoft Azure 包网站版本 2 更新 2 安装程序(可从 Web 平台安装程序获得)进行升级。 有关此更新中更改的详细信息,请参阅 Microsoft 知识库文章 2932947

使用 Microsoft 更新进行升级

如果要使用 Microsoft 更新进行升级,你的系统必须能够访问 Internet 以下载可安装的组件。 如果要使用 WSUS 来分配升级,仍需要你的网站控制器角色具有 Internet 访问权限。 若要执行升级,请使用标准的 Windows 更新控制台,然后选择 “Microsoft Azure 包版本 2 的更新”

说明

  • 这是一个可选更新。

  • 若要应用升级,必须将此更新应用到每个网站控制器角色。 为了使更新在控制器角色上可用,在安装过程中必须已启用 Microsoft 更新。

Web 平台安装程序进行升级

或者,可以通过 Web 平台安装程序运行 Microsoft Azure 包网站 v2 更新 2 安装程序来应用此更新。 此安装程序还必须在每个控制器角色上运行。 如果弹出属于正常安装体验的配置门户,将其关闭即可。 偶尔会出现这种情况。

注意

这种升级方法需要从控制台角色访问 Internet。

在缺少 Internet 访问权限的系统上进行升级

如果要将升级应用到不具备 Internet 访问权限的安装,请执行以下步骤:

  1. 在具有 Internet 访问权限的计算机上,下载 Web 平台安装程序命令行工具

  2. 运行以下 powershell 命令:

    WebpiCmd.exe /offline /products:"HostingController,HostingFrontEndRole,HostingWebRole,HostingPublishingRole,HostingManagementServerRole,HostingAdministration,HostingFileServerRole,HostingWebPlatformInstaller" /Path:"$([System.Environment]::ExpandEnvironmentVariables("%SystemDrive%\Offline_Feeds"))" /XML:"https://go.microsoft.com/?LinkId=9845550" /Language:en
    
  3. 将名为 “%systemdrive%\Offline_feeds\feeds\v001” 的文件夹重命名为 “WebSites_v2.0-7.7.8.0”

  4. “WebSites_v2.0-7.7.8.0” 目录复制到网站控制器服务器,使其位于 “%systemdrive%\HostingOfflineFeed\feeds”

  5. 在运行安装程序之前,你可以确认脱机源是可访问的。 检查访问以下 URL 时是否返回 XML 文件,其中 <控制器> 是网站控制器服务器的名称:

    http://<controller>/HostingOfflineFeed/feeds/WebSites_v2.0-7.7.8.0/WebSites0.9.0.xml
    
  6. 在具有 Internet 访问权限的计算机上,从 Microsoft 下载中心 下载 “WebSitesFeed.msi” ,并将该文件复制到网站控制器服务器。

  7. 在每个网站控制器服务器上,使用以下 Windows PowerShell 命令更新注册表。 无需替换 {controller} ,因为将自动扩展正确的值。

    $offlineFeedUrl = 'http://{controller}/HostingOfflineFeed/feeds/WebSites_v2.0-7.7.8.0/WebSites0.9.0.xml'
    
    $hostingFrameworkRegKeyPath = "Registry::HKLM\SOFTWARE\Microsoft\IIS Extensions\Web Hosting Framework"
    
    Set-ItemProperty -path $hostingFrameworkRegKeyPath -name "MainFeedUrl" -value $offlineFeedUrl
    
  8. 在每个网站控制器服务器上,运行以下命令以完成升级:

    msiexec /i websitesfeed.msi WEBSITES_FEED=None FEED_HASH=None FEED_FILE_NAME=None WEBSITES_UPGRADE_ACTIONS="UpgradeDatabase,InstallController,UpdateFeedConfiguration,UpgradeAllServers"
    

你可以在事件查看器中监视升级过程,该查看器位于管理门户中或网站控制器的信息服务管理器 (IIS) 中的 “Microsoft-Windows-WebSitesUpdate/Operational”下。

如何从 V1 或 V2 预览版升级到 Microsoft Azure 包网站 V2

本部分提供了一些脚本和命令,它们可用于将受支持的 Microsoft Azure 包:网站预览版升级到 R2 发行版。 有关升级 Windows Azure Pack 本身的信息,请参阅 Upgrade from the Preview version of Windows Azure Pack

从预览版升级 Microsoft Azure 包:网站时,请牢记以下事项:

  • 必须从网站控制器开始升级。

  • 可按每个服务器场 5% 服务器的默认比率升级网站角色,也可指定其他百分比。

  • 如果从 V2 预览版升级到 R2 发行版,还必须对托管数据库执行一组 SQL 命令。

  • 若要从版本 1 成功升级到版本 2 的更新 1,则必须将 HostingAdmin 数据库用户的权限更改为资源计量数据库所有者的相同权限。 执行此操作的步骤,请参阅本文档后面的“更改 HostingAdmin 权限”部分。

    警告

    网站控制器只有在安装了新版本的 Microsoft Azure 包:网站并升级了数据库后才可用。 直到数据库升级,控制器将处于不可用状态,因为无法启动 Web 场服务。

如何查看你的当前版本和升级状态

你可以使用 PowerShell 和/或事件查看器来查看 Microsoft Azure 包:网站的当前版本和升级状态。

使用 PowerShell

若要查看在整个时间戳中安装的 Microsoft Azure 包:网站的版本,请在控制器角色上以管理员身份运行以下 PowerShell 命令。

Import-Module WebSites
Get-WebSitesServer | foreach{$_.PlatformVersion}

下面更详细的 PowerShell 命令可输出计算机名称、平台版本和状态。

Get-WebSitesServer | %{"$($_.Name) : $($_.PlatformVersion) ($($_.Status))"}

示例输出:

CN-V2UP-ANT306 :  (Not ready)
MN-V2UP-ANT313 : 7.6.10690.14 (Ready)
LB1-V2UP-ANT307 : 7.6.10690.14 (Ready)
LB2-V2UP-ANT313 : 7.6.10690.14 (Ready)
W1-V2UP-ANT312 : 7.6.10690.14 (Ready)
W2-V2UP-ANT305 : 7.6.10690.14 (Ready)
S-V2UP-ANT313 : 7.6.10690.14 (Ready)
PB-V2UP-ANT306 : 7.6.10690.14 (Not ready)
FS-V2UP-ANT304 : 7.6.10690.14 (Ready)

使用事件查看器

你还可以通过在事件查看器中查看 WebSitesUpdate Operational 日志来跟踪升级的状态。 在事件查看器的左窗格中,依次展开 “应用程序和服务日志”“Microsoft”“Windows”“WebSitesUpdate”,然后选择 “可操作”

更改 HostingAdmin 权限

若要从版本 1 成功升级到版本 2 的更新 1,则必须将 HostingAdmin 数据库用户的权限更改为资源计量数据库所有者的相同权限。 必须执行此步操作,因为只有“SA”用户具有对资源计量数据库的完全访问权限,并且事先并不知道 SA 凭据。

更改 HostingAdmin 权限

  1. 在 SQL Server Management Studio 的左侧导航窗格中,展开 “安全性”,然后展开 “登录名”

  2. 右键单击 “Hosting_HostingAdmin”,然后选择 “属性”

  3. 在左窗格中的 “选择页”下,选择 “用户映射”

  4. “映射到此登录名的用户”下,将 “ResourceMetering” 添加到 “数据库” 列。

  5. “用户” 列中,添加 “HostingAdmin” 用户名。

    重要

    用户名称应为 “HostingAdmin”,而不是“Hosting_HostingAdmin”。

  6. 在下窗格中的 “数据库角色成员身份:“ResourceMetering”下,将角色成员身份更改为 “db_owner”,然后单击 “确定”

这些步骤会赋予 HostingAdmin 用户足够的权限以允许通过网站更新服务完全自动升级。

开始升级

在网站控制器上,执行以下步骤。

  1. 在提升了权限的命令提示符下,(可选)停止 Web 场服务。 此步骤使安装后不需要重新启动控制器:

    net stop webfarmservice
    
  2. 尽管安装新版本将自动卸载旧版本,但也可先手动卸载旧版本(如果想要这样做)。 若要手动卸载以前的版本,请转到控制面板>程序和功能,然后卸载 Web 托管框架

  3. 使用 Web 平台安装程序,安装新版 Microsoft Azure 包:网站: 有关详细信息,请参阅"开始"菜单安装 Windows Azure Pack:网站

    你可以按每个服务器场服务器 5% 的默认速率或者以受控方式升级 Microsoft Azure 包:网站角色。

若要同时升级每个服务器场的 5% 服务器,请执行以下操作

在控制器上,运行以下 PowerShell 脚本以升级数据库、设置 hostingConfiguration 中的 feedUrl 并在所有角色上开始升级。 根据您所处环境的需要,更改数据库服务器名称和密码信息。

"%ProgramFiles%\IIS\Microsoft Web Sites\Feed\WebSitesSetupHelper.ps1" -actions CompleteUpgrade -upgradeConnectionString "Server=DB-Websites;User Id=sa;Password=password"

注意

  • 只有在将 V1 升级到 R2 发行版时才需要 -upgradeConnectionString 参数(将 V2 预览版升级到 R2 发行版时不需要)。

  • 该连接字符串必须使用 sa 凭据。

若要以指定速率升级 Microsoft Azure 包:网站服务器:

  1. 运行以下命令以升级数据库,然后在托管配置中设置新的源 URL:

    "%ProgramFiles%\IIS\Microsoft Web Sites\Feed\WebSitesSetupHelper.ps1" -actions CompleteUpgrade -skipRoleUpgrade
    
  2. 使用以下 PowerShell 命令控制升级角色时采用的比率。 将 WFFMaximumStoppedServersPercentage 的值设置为每个服务器场要同时升级的服务器的百分比。 默认值为 5%。

    Add-pssnapin WebHostingSnapin
    Set-WebSitesConfig -Type Global -WffMaxStoppedServersPercent <percentage>
    

    示例

    下例同时升级每个服务器场中的 20% 服务器。

    Set-WebSitesConfig -Type Global -WffMaxStoppedServersPercent 20
    

为所有 Microsoft Azure 包:网站角色启动角色升级,或基于每个角色进行升级

  1. 若要对所有网站角色发起升级,请运行以下 PowerShell 命令:

    "%ProgramFiles%\IIS\Microsoft Web Sites\Feed\WebSitesSetupHelper.ps1" -actions 'UpgradeAllServers'
    
  2. 若要按角色发起网站角色的升级,可单独运行以下每个 PowerShell 命令:

    Start-Operation -OperatorName WFF -OperationName Upgrade @{"WebFarmName"="FrontEndServers"}
    
        Start-Operation -OperatorName WFF -OperationName Upgrade @{"WebFarmName"="FileServers"}
    
        Start-Operation -OperatorName WFF -OperationName Upgrade @{"WebFarmName"="ManagementServers"}
    
        Start-Operation -OperatorName WFF -OperationName Upgrade @{"WebFarmName"="PublisherServers"}
    
        Start-Operation -OperatorName WFF -OperationName Upgrade @{"WebFarmName"="WorkerServers"}
    

从 V2 预览版升级到 R2 发行版

从 V2 预览版升级到 R2 发行版(而非从 V1 升级到 R2 发行版)时,还必须对“托管”数据库运行以下 SQL 命令。 执行这些命令后,支持在升级后更新现有订阅和计划。

-- Get the ResourceId for the 'CpuTime' resource.
DECLARE @CpuTimeResourceId INT;
SELECT @CpuTimeResourceId = (SELECT TOP 1 ResourceId FROM runtime.QuotaResources WHERE ResourceName = N'CpuTime')

INSERT  INTO [runtime].[OwnerQuotas] 
                ([QuotaName],
                 [PolicyId],
                 [ResourceId],
                 [Limit],
                 [ExceededAction],
                 [TimeUnits],
                 [Period],
                 [ActionId])
SELECT 'CpuTimeBurst', POL.PolicyID, @CpuTimeResourceId, -1, 0, 1, 5, NULL 
FROM [admin].[subscriptions] SUB
INNER JOIN [runtime].[SitePolicies] POL
ON SUB.Name = POL.PlanName
WHERE NOT EXISTS (SELECT 1 FROM runtime.OwnerQuotas O WHERE O.PolicyId = POL.PolicyID AND QuotaName = N'CpuTimeBurst')

INSERT  INTO [runtime].[SiteQuotas] 
                ([QuotaName],
                 [PolicyId],
                 [ResourceId],
                 [Limit],
                 [ExceededAction],
                 [TimeUnits],
                 [Period],
                 [ActionId])
SELECT 'CpuTimeBurst', POL.PolicyID, @CpuTimeResourceId, -1, 0, 1, 5, NULL 
FROM [admin].[subscriptions] SUB
INNER JOIN [runtime].[SitePolicies] POL
ON SUB.Name = POL. PlanName
WHERE NOT EXISTS (SELECT 1 FROM runtime.SiteQuotas O WHERE O.PolicyId = POL.PolicyID AND QuotaName = N'CpuTimeBurst')

另请参阅

从 Windows Azure Pack 的预览版本升级
部署 Windows Azure 包:网站