本文說明如何使用檔案傳輸通訊協定 (FTP) 或檔案傳輸通訊協定安全 (FTPS) 將 Web 應用程式、行動應用程式後端或 API 應用程式部署至 Azure App Service。 不需要設定才能啟用 FTP 或 FTPS 應用程式部署。 應用程式的 FTP/S 端點已經作用中。
備註
必須啟用 SCM 基本身份驗證發行認證 和 FTP 基本身份驗證發佈認證 ,才能讓 FTP/S 部署運作。 停用 基本身份驗證時,FTP/S 部署無法運作,而且您無法在應用程式的 部署中心中檢視或設定 FTP/S 認證。
取得部署認證
若要取得部署的認證,請遵循設定 Azure App Service 的部署認證中的指示。 複製應用程式的應用程式範圍認證,或設定並複製使用者範圍認證。 您可以使用任一組認證來連線到應用程式的 FTP/S 端點。
針對應用程式範圍認證,FTP/S 使用者名稱格式為 <app-name>\$<app-name>
。 針對使用者範圍認證,FTP/S 使用者名稱格式為 <app-name>\<username>
。 App Service FTP/S 端點會在應用程式之間共用,而且因為使用者範圍認證未連結至特定資源,因此您必須在用戶名稱前面加上應用程式名稱。
取得 FTP/S 端點
若要取得 FTP/S 端點:
在應用程式的 Azure 入口網站頁面上,選取左側導覽功能表中 [部署] 底下的 [部署中心]。 在 [ FTPS 認證] 索引標籤上,複製 FTPS 端點 URL。
將檔案部署至 Azure
若要使用 FTP/S 將檔案部署至 Azure:
- 從您的 FTP/S 用戶端,例如 Visual Studio、 Cyberduck 或 WinSCP,使用您的連線資訊來連線到您的應用程式。
- 將檔案及其目錄結構複製到 Azure 中的 /site/wwwroot 目錄,或 WebJobs 的 /site/wwwroot/App_Data/Jobs/ 目錄。
- 瀏覽至您的應用程式 URL,以確認應用程式運作正常。
備註
不同於 本機 Git 部署 和 ZIP 部署,FTP/S 部署不支援建置自動化,例如:
- 還原 NuGet、NPM、PIP 和 Composer 自動化等相依性。
- 編譯 .NET 二進位檔。
- 產生 web.config 檔案。
您必須在本機計算機上手動產生這些必要的檔案,然後使用您的應用程式加以部署。 如需 Node.js web.config 範例,請參閱 使用節點應用程式的自定義 web.config。
強制執行 FTPS
FTPS 是一種更安全的 FTP 形式,使用傳輸層安全性 (TLS) 和安全套接字層 (SSL)。 為了增強安全性,您應該透過 TLS/SSL 強制執行 FTPS。 如果您沒有使用 FTP 部署,您也可以停用 FTP 和 FTPS。
若要停用未加密的 FTP:
FTP/S 部署疑難解答
- 在部署期間,我的應用程式會發生什麼情況,可能會導致失敗或無法預期的行為?
- 針對 FTP/S 部署進行疑難解答的第一個步驟為何?
- 為什麼我無法 FTP/S 併發佈我的程式代碼?
- 如何透過被動模式連線到 App Service 中的 FTP/S?
- 為什麼我在嘗試使用明確加密透過 FTPS 連線時失敗?
- 如何判斷用來部署應用程式的方法為何?
在部署期間,我的應用程式會發生什麼情況,可能會導致失敗或無法預期的行為?
正式支援的部署方法會變更用來執行應用程式的 /home/site/wwwroot 資料夾中的檔案。 部署可能會因為鎖定的檔案而失敗。 如果檔案並非全部同時更新,則應用程式在部署期間也會發生無法預期的行為,這對客戶面向應用程式而言並不理想。
有幾種方式可以避免這些問題。
- 直接從 ZIP 套件執行您的應用程式, 而不需解除封裝。
- 停止您的應用程式,或在部署期間啟用離線模式。 如需詳細資訊,請參閱在部署期間處理鎖定的檔案。
- 在開啟自動交換的情況下,部署到預備位置。
針對 FTP/S 部署進行疑難解答的第一個步驟為何?
針對 FTP/S 部署進行疑難解答的第一個步驟是區分部署問題和運行時間應用程式問題。
部署問題通常會導致未將檔案或錯誤的檔案部署到您的應用程式。 您可以透過檢查 FTP/S 部署來進行疑難排解,或者選擇其他的部署路徑,例如原始碼管理。
運行時間應用程式問題通常會導致將正確的檔案部署至您的應用程式,但應用程式行為不正確。 您可以專注於程式碼在執行時期的行為,並調查導致失敗的特定路徑來進行疑難解答。
如需詳細資訊,請參閱 部署與運行時間問題。
為什麼我無法 FTP/S 併發佈我的程式代碼?
請檢查您輸入正確的 主機名 和 認證。 此外,請確定防火牆不會封鎖您電腦上的下列 FTP/S 連接埠:
- FTP/S 控制連線埠:
21
、990
- FTP/S 數據連線埠:
989
、10001-10300
如何透過被動模式連線到 Azure App Service 中的 FTP/S?
Azure App Service 支援透過主動和被動模式進行連線。 偏好被動模式,因為部署機器通常位於操作系統中的防火牆之後或作為家庭或商務網絡的一部分。 如需被動模式連線的範例,請參閱 [聯機頁面] [進階網站設定] 對話方塊。
為什麼我在嘗試使用明確加密透過 FTPS 連線時失敗?
FTPS 允許建立明確或隱含 TLS 安全連線。
- 如果您使用明確加密進行連線,則會透過埠
21
建立連線。 - 如果您使用隱含加密進行連線,則會透過埠
990
建立連線。
您使用的 URL 格式可能會影響連線成功,並取決於您的用戶端應用程式。 入口網站會將 URL 顯示為 ftps://
,但如果您連線的 URL 是以 ftp://
開頭的,則暗示連線是在埠 21
上。 如果 URL 以 ftps://
開頭,則連接被視為默認連接,設置在埠 990
上。
請確保不混淆設定,例如不要嘗試使用埠 ftps://
來連接21
。 即使使用明確加密,此設定仍無法完成連線,因為此明確連接在 AUTH
方法之前首先作為一般 FTP 連線開始。
如何判斷用來部署應用程式的方法為何?
您可以在其 Azure 入口網站頁面上檢查應用程式設定,以瞭解如何部署應用程式。 在左側導覽功能表中的 [設定] 下,選取 [環境變數]。 在 [ 應用程式設定] 索引標籤上:
- 如果使用外部套件 URL 部署應用程式,則
WEBSITE_RUN_FROM_PACKAGE
設定會出現在具有 URL 值的應用程式設定中。 - 如果使用 ZIP 部署來部署應用程式,則
WEBSITE_RUN_FROM_PACKAGE
設定會顯示值為1
。
如果您使用 Azure DevOps 部署應用程式,您可以在 Azure DevOps 入口網站中看到部署歷程記錄。 如果您使用 Azure Functions Core Tools,您可以在 Azure 入口網站中看到部署歷程記錄。