Azure 雲端服務 (傳統) 設定和管理問題:常見問題 (FAQ)

重要

截至 2024 年 9 月 1 日,所有客戶的雲端服務 (傳統) 均已淘汰。 自 2024 年 10 月起,Microsoft 將停止並關閉任何執行中的現有部署,且資料將永久遺失。 新部署應該使用 Azure Resource Manager 型的新部署模型 Azure 雲端服務 (延伸支援)

本文包含 Microsoft Azure 雲端服務之設定和管理問題的相關常見問題集。 您也可以參閱雲端服務虛擬機器 (VM) 大小頁面以取得大小資訊。

若本文中未提及您的 Azure 問題,請前往 Microsoft Q 和 A 及 Stack Overflow 上的 Azure 論壇。 您可以在這些論壇中張貼您的問題,或將問題貼到 Twitter 上的 @AzureSupport。 您也可以提交 Azure 支援要求。 若要提交支援要求,請在 Azure 支援頁面上,選取 [取得支援]。

憑證

監視和記錄

網路組態

權限

調整大小

泛型

憑證

為什麼我的雲端服務 TLS/SSL 憑證的憑證鏈結不完整?

我們建議客戶安裝完整的憑證鏈結而不是分葉憑證 (分葉憑證、中繼憑證、和根憑證)。 當您安裝分葉憑證時,會依賴 Windows 透過查核憑證信任清單 (CTL) 來建置憑證鏈結。 如果當 Windows 嘗試驗證憑證時,在 Azure 或 Windows Update 中發生間歇性網路或網域名稱系統 (DNS) 問題,就可能會將憑證視為無效。 若您有安裝完整的憑證鏈結,便可以避免這個問題。 如何安裝鏈結的 SSL 憑證中的部落格會示範如何安裝完整的憑證鏈結。

「Microsoft Azure Tools 延伸模組的加密憑證」用途為何?

每當有擴充功能新增至雲端服務時,就會自動建立這些憑證。 大多數情況下,此延伸模組是 WAD 延伸模組或 RDP 延伸模組,但也可能是其他的,例如反惡意程式碼軟體或記錄收集器延伸模組。 這些憑證僅用於將擴充功能的私用組態進行加密和解密。 永遠不會檢查到期日,因此憑證是否過期並不重要。 

您可以忽略這些憑證。 如果您想要清除憑證,可以嘗試全數刪除。 如果您嘗試刪除的憑證正在使用中,Azure 就會擲回錯誤。

如何能夠產生憑證簽署要求 (CSR),而不 "RDP" 到執行個體中?

請參閱下列指導方針文件:

使用 Microsoft Azure 網站 (WAWS) 取得要使用的憑證 (英文)

CSR 只是文字檔。 不需要在準備使用憑證的電腦建立此檔案。 雖然是針對 App Service 寫入這份文件,但 CSR 建立為泛型,且也適用於雲端服務。

我的雲端服務管理憑證即將到期。 要如何續訂?

您可以使用下列 PowerShell 命令來更新管理憑證:

Add-AzureAccount
Select-AzureSubscription -Current -SubscriptionName <your subscription name>
Get-AzurePublishSettingsFile

Get-AzurePublishSettingsFile 會在 Azure 入口網站的 [訂用帳戶]>[管理憑證] 中建立新的管理憑證。 新憑證的名稱如下 "YourSubscriptionNam]-[CurrentDate]-credentials"。

如何自動化安裝主要 TLS/SSL 憑證 (.pfx) 和中繼憑證 (.p7b)?

您可以使用啟動指令碼 (batch/cmd/PowerShell) 將這項工作自動化,並在服務定義檔中註冊該啟動指令碼。 將啟動指令碼和憑證 (.p7b 檔案) 新增至與啟動指令碼相同目錄的專案資料夾中。

「適用於 MachineKey 的 Microsoft Azure 服務管理」憑證的用途為何?

此憑證用來加密 Azure Web 角色上的電腦金鑰。 若要深入了解,請參閱此篇諮詢

如需詳細資訊,請參閱下列文章:

監視與記錄

Azure 入口網站中即將推出的哪些雲端服務功能可協助管理和監視應用程式?

即將推出為遠端桌面通訊協定 (RDP) 產生新憑證的功能。 或者,您也可以執行下列指令碼:

$cert = New-SelfSignedCertificate -DnsName yourdomain.cloudapp.net -CertStoreLocation "cert:\LocalMachine\My" -KeyLength 20 48 -KeySpec "KeyExchange"
$password = ConvertTo-SecureString -String "your-password" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath ".\my-cert-file.pfx" -Password $password

即將推出可針對您的 csdef 和 cscfg 上傳位置選擇 Blob 或本機的功能。 使用 New-AzureDeployment,您可以設定每個位置的值。

監視執行個體層級計量的功能。 如何監視雲端服務中還有更多監視功能。

為什麼 IIS 會停止寫入記錄目錄?

您已耗盡寫入記錄目錄的本地儲存體配額。 若要修正此問題,您可以執行下列三個項目的其中一項:

  • 啟用 IIS 的診斷,並定期將診斷移至 blob 儲存體中。
  • 從記錄目錄中手動移除記錄檔。
  • 增加本機資源的配額限制。

如需詳細資訊,請參閱下列文件:

如何為雲端服務啟用 WAD 記錄?

您可以透過下列選項來啟用 Microsoft Azure 診斷 (WAD) 記錄:

  1. 從 Visual Studio 啟用
  2. 透過 .NET 程式碼啟用
  3. 透過 PowerShell 啟用

若要取得雲端服務的目前 WAD 設定,您可以使用 Get-AzureServiceDiagnosticsExtensions PowerShell cmd,或可在入口網站的 [雲端服務] --> [延伸模組] 刀鋒視窗中檢視。

網路組態

如何設定 Azure Load Balancer 的閒置逾時?

您可以在服務定義 (csdef) 檔中指定逾時,就像這樣:

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="mgVS2015Worker" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
  <WorkerRole name="WorkerRole1" vmsize="Small">
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" />
    </ConfigurationSettings>
    <Imports>
      <Import moduleName="RemoteAccess" />
      <Import moduleName="RemoteForwarder" />
    </Imports>
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="tcp" port="10100"   idleTimeoutInMinutes="30" />
    </Endpoints>
  </WorkerRole>

如需詳細資訊,請參閱新增:Azure Load Balancer 的可設定閒置逾時

如何將靜態 IP 位址關聯到我的雲端服務?

若要設定靜態 IP 位址,您必須建立保留的 IP。 這個保留的 IP 可以關聯到新的雲端服務或現有的部署。 請參閱以下文件了解詳細資料:

Azure 的基本 IPS/IDS 和 DDOS 提供的特性和功能是什麼?

Azure 在資料中心實體伺服器中擁有 IP/ID 可以防範潛威脅。 此外,客戶可以部署非 Microsoft 的安全性解決方案,例如 Web 應用程式防火牆、網路防火牆、反惡意程式碼軟體、入侵偵測、預防系統 (IDS/IPS) 等等。 如需詳細資訊,請參閱保護您的資料和資產,以及符合全域安全性標準

Microsoft 會持續監視伺服器、網路和應用程式來偵測威脅。 Azure 的多元化威脅管理方法會使用入侵偵測、分散式阻斷服務 (DDoS) 攻擊防護、滲透測試、行為分析、異常偵測和機器學習,不斷地加強其防禦並降低風險。 適用於 Azure 保護的 Azure 雲端服務和虛擬機器的 Microsoft Antimalware。 您可以額外部署非 Microsoft 的安全性解決方案,例如 Web 應用程式防火牆、網路防火牆、反惡意程式碼軟體,以及入侵偵測以及預防系統 (IDS/IPS) 等等。

如何啟用雲端服務 VM 上的 HTTP/2?

Windows 10 和 Windows Server 2016 隨附用戶端和伺服器端上的 HTTP/2 支援。 如果您的用戶端 (瀏覽器) 透過利用 TLS 延伸模組交涉 HTTP/2 的傳輸層安全性 (TLS) 來連線到 IIS 伺服器,您就不需要在伺服器端上進行任何變更。 您不需要進行變更,因為指定使用 HTTP/2 的 h2-14 標頭依預設會透過 TLS 傳送。 另一方面,如果您的用戶端要傳送升級標頭來升級至 HTTP/2,您需要在伺服器端進行下列變更以確保可進行升級,並以 HTTP/2 連線作為結尾。

  1. 執行 regedit.exe。
  2. 瀏覽至登錄機碼:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters。
  3. 建立名為 DuoEnabled 的新 DWORD 值。
  4. 將值設為 1。
  5. 重新啟動您的伺服器。
  6. 前往 [預設網站],並在 [繫結] 下方使用您建立的自我簽署憑證來建立新的 TLS 繫結。

如需詳細資訊,請參閱

  • ISS 上的 HTTP/2
  • 影片:Windows 10 中的 HTTP/2:瀏覽器、應用程式和 Web 伺服器

您可透過啟動工作將這些步驟自動化,每當建立新的 PaaS 執行個體時,便可在系統登錄中執行先前的變更。 如需詳細資訊,請參閱如何設定和執行雲端服務的啟動工作

當您完成之後,可以使用下列方法之一來確認 HTTP/2 是否已啟用:

  • 啟用 IIS 記錄中的通訊協定版本,並查看 IIS 記錄。 記錄中會顯示 HTTP/2。
  • 在 Internet Explorer 或 Microsoft Edge 中啟用 F12 開發人員工具,並切換至 [網路] 索引標籤。您可以在此處驗證通訊協定。

如需詳細資訊,請參閱 IIS 上的 HTTP/2

權限

如何實作雲端服務的角色型存取?

雲端服務不支援 Azure 角色型存取控制模型,因為該服務不是以 Azure Resource Manager 為基礎。

請參閱了解 Azure 中的不同角色

遠端桌面

Microsoft 內部工程師是否可在沒有權限的情況下,從遠端桌面到雲端服務執行個體?

Microsoft 會遵循嚴格的程序,不允許內部工程師在沒有擁有者或其受指派者書面授權 (電子郵件或其他書面通訊) 的情況下,從遠端桌面登入您的雲端服務中。

我無法使用 RDP 檔案從遠端桌面登入雲端服務虛擬機器。 我收到下列錯誤:發生驗證錯誤 (代碼:0x80004005)

如果您使用的 RDP 檔案來自已加入 Microsoft Entra ID 的機器,即可能會發生這個錯誤。 若要解決此問題,請依照下列步驟執行︰

  1. 以滑鼠右鍵按一下您下載的 RDP 檔案,然後選取 [編輯]
  2. 新增 "\" 作為使用者名稱的前置詞。 例如,使用 .\username 而不是 username

調整大小

我不能調整超過 X 個執行個體

您的 Azure 訂用帳戶對於您可以使用的核心數目有限制。 如果您已使用所有可用的核心,調整將無法運作。 例如,如果您有 100 個核心的限制,這表示您的雲端服務可以有 100 個 A1 大小的虛擬機器執行個體,或 50 個 A2 大小的虛擬機器執行個體。

如何根據記憶體計量設定自動縮放?

目前不支援雲端服務根據記憶體計量設定自動縮放。

若要解決這個問題,您可以使用 Application Insights。 自動縮放可支援 Application Insights 作為計量來源,而且可以根據來賓計量 (如「記憶體」) 來縮放角色執行個體計數。您必須在雲端服務專案封裝檔案 (*.cspkg) 中設定 Application Insights,並在服務上啟用 Azure 診斷擴充功能來實作此功能。

有關如何透過 Application Insights 使用自訂計量以在雲端服務上設定自動縮放的詳細資訊,請參閱開始在 Azure 中依自訂計量自動調整規模

有關如何將 Azure 診斷與雲端服務的 Application Insights 整合的詳細資訊,請參閱傳送雲端服務、虛擬機器或 Service Fabric 診斷資料至 Application Insights

有關啟用雲端服務 Application Insights 的詳細資訊,請參閱 Azure 雲端服務的 Application Insights

有關如何啟用雲端服務 Azure 診斷記錄的詳細資訊,請參閱為 Azure 雲端服務和虛擬機器設定診斷

泛型

如何將 "nosniff" 新增至我的網站?

若要防止用戶端探查 MIME 類型,請在您的 web.config 檔案中加入一項設定。

<configuration>
   <system.webServer>
      <httpProtocol>
         <customHeaders>
            <add name="X-Content-Type-Options" value="nosniff" />
         </customHeaders>
      </httpProtocol>
   </system.webServer>
</configuration>

您也可以在 IIS 中將此加入為設定。 請參考常見的啟動工作一文來使用下列命令。

%windir%\system32\inetsrv\appcmd set config /section:httpProtocol /+customHeaders.[name='X-Content-Type-Options',value='nosniff']

如何自訂 Web 角色的 IIS?

請從常見的啟動工作一文使用 IIS 啟動指令碼。

我的雲端服務配額限制是多少?

為什麼雲端服務虛擬機器上的磁碟機顯示幾乎沒有可用的磁碟空間?

這是預期的行為,並不會對您的應用程式造成任何問題。 在 Azure PaaS 虛擬機器中會開啟 %approot% 磁碟機的日誌記錄,基本上會消耗兩倍檔案通常所佔用的空間量。 不過,還需注意幾件事,才能讓這個事件變得毫無影響。

%approot% 磁碟機大小會以 <.cspkg 的大小 + 最大的日誌大小 + 可用空間的邊界> 來計算,或 1.5 GB,兩者取其較大。 您 VM 的大小對這個計算方式並無任何影響。 (VM 大小只會影響暫存 C: 磁碟機的大小。)

其不支援寫入 %approot% 磁碟機。 如果您要寫入 Azure VM 中,必須在暫存 LocalStorage 資源中進行 (或其他選項,例如 Blob 儲存體、Azure 檔案等)。 因此在 %approot% 資料夾上的可用空間數量沒有任何意義。 如果您不確定應用程式是否要寫入 %approot% 磁碟機中,一律可以讓您的服務執行幾天,然後比較「之前」和「之後」的大小。 

Azure 不會將任何內容寫入 %approot% 磁碟機。 一旦從 .cspkg 建立虛擬硬碟 (VHD) 並將其掛接至 Azure VM 後,唯一會寫入此磁碟機的就是您的應用程式。 

日誌設定不可設定,因此您無法將其關閉。

如何以自動化方式新增雲端服務的反惡意程式碼擴充功能?

您可以在「啟動工作」中使用 PowerShell 指令碼來啟用反惡意程式碼擴充功能。 若要實作,請遵循下列這些文章中的步驟:

如需反惡意程式碼部署情節及如何從入口網站加以啟用的詳細資訊,請參閱反惡意程式碼部署情節

如何啟用雲端服務的伺服器名稱指示 (SNI)?

您可以使用下列其中一個方法來啟用雲端服務中的 SNI:

方法 1:使用 PowerShell

您可以在雲端服務角色執行個體的啟動工作中,使用下列 PowerShell Cmdlet New-WebBinding 來設定 SNI 繫結:

New-WebBinding -Name $WebsiteName -Protocol "https" -Port 443 -IPAddress $IPAddress -HostHeader $HostHeader -SslFlags $sslFlags

此處所述,$sslFlags 可以是下列其中一個值:

意義
0 沒有 SNI
1 已啟用 SNI
2 非 SNI 繫結,使用中央憑證存放區
3 SNI 繫結,使用中央憑證存放區

方法 2:使用程式碼

也可以透過角色啟動中的程式碼來設定 SNI 繫結,如這個部落格文章所述:

//<code snip> 
                var serverManager = new ServerManager(); 
                var site = serverManager.Sites[0]; 
                var binding = site.Bindings.Add(":443:www.test1.com", newCert.GetCertHash(), "My"); 
                binding.SetAttributeValue("sslFlags", 1); //enables the SNI 
                serverManager.CommitChanges(); 
    //</code snip>

使用前述的任何方法時,必須先使用啟動工作或透過程式碼在角色執行個體上安裝特定主機名稱的個別憑證 (*.pfx),SNI 繫結才會有效。

如何將標籤新增至我的 Azure 雲端服務?

雲端服務是傳統資源。 只有透過 Azure Resource Manager 建立的資源才能支援標籤。 您無法將標籤套用到傳統資源 (例如雲端服務)。

Azure 入口網站不會顯示雲端服務的 SDK 版本。 如何取得版本?

我們正設法將這項功能引進 Azure 入口網站。 同時,您可以使用下列 PowerShell 命令取得 SDK 版本:

Get-AzureService -ServiceName "<Cloud Service name>" | Get-AzureDeployment | Where-Object -Property SdkVersion -NE -Value "" | select ServiceName,SdkVersion,OSVersion,Slot

我想要關閉雲端服務幾個月。 如何降低雲端服務的計費成本,而不遺失 IP 位址?

已部署的雲端服務會取得所使用的計算服務和儲存體之計費。 因此即使您關閉 Azure 虛擬機器,仍會收到儲存體的帳單。

以下方法可以降低您的計費,而不會遺失服務的 IP 位址:

  1. 在刪除部署之前保留 IP 位址。 Azure 只會向您收取此 IP 位址的費用。 如需 IP 位址計費的詳細資訊,請參閱 IP 位址定價
  2. 刪除部署。 請勿刪除 xxx.cloudapp.net,以便您未來繼續使用。
  3. 如果想要使用您在訂用帳戶中保留的同一保留 IP 來重新部署雲端服務,請參閱雲端服務和虛擬機器的保留 IP 位址