Distribuera din app till Azure App Service med FTP/S
Den här artikeln visar hur du använder FTP eller FTPS för att distribuera din webbapp, mobilappsserverdel eller API-app till Azure App Service.
FTP/S-slutpunkten för din app är redan aktiv. Ingen konfiguration krävs för att aktivera FTP/S-distribution.
Kommentar
När grundläggande FTP-autentisering är inaktiverad fungerar inte FTP/S-distributionen och du kan inte visa eller konfigurera FTP-autentiseringsuppgifter i appens distributionscenter.
Hämta autentiseringsuppgifter för distribution
Följ anvisningarna i Konfigurera autentiseringsuppgifter för distribution för Azure App Service för att kopiera autentiseringsuppgifterna för programomfattningen eller ange autentiseringsuppgifterna för användaromfånget. Du kan ansluta till FTP/S-slutpunkten för din app med autentiseringsuppgifterna.
Skapa FTP-användarnamnet i följande format, beroende på ditt val av omfång för autentiseringsuppgifter:
Programomfattning Användaromfång <app-name>\$<app-name>
<app-name>\<deployment-user>
I App Service delas FTP/S-slutpunkten mellan appar. Eftersom autentiseringsuppgifterna för användaromfånget inte är länkade till en specifik resurs måste du förbereda användarnamnet för användaromfånget med appnamnet enligt ovan.
Hämta FTP/S-slutpunkt
På samma hanteringssida för din app där du kopierade autentiseringsuppgifterna för distributionen (FTP-autentiseringsuppgifter för Distributionscenter>) kopierar du FTPS-slutpunkten.
Distribuera filer till Azure
- Från FTP-klienten (till exempel Visual Studio, Cyberduck eller WinSCP) använder du anslutningsinformationen som du samlade in för att ansluta till din app.
- Kopiera dina filer och deras respektive katalogstruktur till katalogen /site/wwwroot i Azure (eller katalogen /site/wwwroot/App_Data/Jobs/ för WebJobs).
- Bläddra till appens URL för att kontrollera att appen körs korrekt.
Kommentar
Till skillnad från Git-baserade distributioner och Zip-distribution stöder FTP-distribution inte byggautomatisering, till exempel:
- beroendeåterställningar (till exempel NuGet, NPM, PIP och Composer automations)
- kompilering av .NET-binärfiler
- generation av web.config (här är ett Node.js exempel)
Generera de nödvändiga filerna manuellt på den lokala datorn och distribuera dem sedan tillsammans med din app.
Framtvinga FTP
För förbättrad säkerhet bör du endast tillåta FTP via TLS/SSL. Du kan också inaktivera både FTP och FTPS om du inte använder FTP-distribution.
På appens resurssida i Azure-portalen väljer du Konfiguration>Allmänna inställningar i det vänstra navigeringsfältet.
Om du vill inaktivera okrypterad FTP väljer du ENDAST FTP I FTP-tillstånd. Om du vill inaktivera både FTP och FTPS helt väljer du Inaktiverad. När du är klar väljer du Spara. Om du bara använder FTPS måste du framtvinga TLS 1.2 eller senare genom att gå till sidan TLS/SSL-inställningar i webbappen. TLS 1.0 och 1.1 stöds inte endast med FTPS.
Vad händer med min app under distributionen?
Alla distributionsmetoder som stöds officiellt gör ändringar i filerna i mappen /home/site/wwwroot i din mapp. De här filerna används för att köra din app. Distributionen kan därför misslyckas på grund av låsta filer. Appen kan även bete sig oförutsägbart under distributionen eftersom alla filer inte uppdateras samtidigt. Det här beteendet är inte önskvärt för en app riktad till kunder. Det finns några sätt att undvika problemen:
- Kör appen direkt från ZIP-paketet utan att packa upp den.
- Stoppa eller aktivera offlineläge för appen under distributionen. Mer information finns i Hantera låsta filer under distributionen.
- Distribuera till en mellanlagringsplats med automatisk växling aktiverat.
Felsöka FTP-distribution
- Hur felsöker jag FTP-distribution?
- Jag kan inte använda FTP och publicera min kod. Hur löser jag problemet?
- Hur ansluter jag till FTP i Azure App Service via passivt läge?
- Varför misslyckas anslutningen när jag försöker ansluta via FTPS med explicit kryptering?
- Hur kan jag fastställa vilken metod som användes för att distribuera min Azure App Service?
Hur felsöker jag FTP-distribution?
Det första steget för att felsöka FTP-distribution är att isolera ett distributionsproblem från ett körningsprogramproblem.
Ett distributionsproblem resulterar vanligtvis i att inga filer eller felaktiga filer distribueras till din app. Du kan felsöka genom att undersöka FTP-distributionen eller välja en alternativ distributionssökväg (till exempel källkontroll).
Ett körningsprogramproblem resulterar vanligtvis i rätt uppsättning filer som distribuerats till din app men felaktigt appbeteende. Du kan felsöka genom att fokusera på kodbeteende vid körning och undersöka specifika felsökvägar.
Information om hur du fastställer ett distributions- eller körningsproblem finns i Problem med distribution kontra körning.
Jag kan inte använda FTP och publicera min kod. Hur löser jag problemet?
Kontrollera att du har angett rätt värdnamn och autentiseringsuppgifter. Kontrollera också att följande FTP-portar på datorn inte blockeras av en brandvägg:
- FTP-kontrollanslutningsport: 21, 990
- FTP-dataanslutningsport: 989, 10001-10300
Hur ansluter jag till FTP i Azure App Service via passivt läge?
Azure App Service stöder anslutning via både aktivt och passivt läge. Passivt läge är att föredra eftersom dina distributionsdatorer vanligtvis ligger bakom en brandvägg (i operativsystemet eller som en del av ett hem- eller företagsnätverk). Se ett exempel från WinSCP-dokumentationen.
Varför misslyckas anslutningen när jag försöker ansluta via FTPS med explicit kryptering?
FTPS gör det möjligt att upprätta TLS-säker anslutning på antingen explicit eller implicit sätt.
- Om du ansluter med implicit kryptering upprättas anslutningen via port 990.
- Om du ansluter med explicit kryptering upprättas anslutningen via port 21.
Det URL-format som du använder kan påverka anslutningens framgång, och det beror också på vilket klientprogram du använder. Portalen visar URL:en som ftps://
, men observera:
- Om url:en som du ansluter med börjar med
ftp://
är anslutningen underförstådd på port 21. - Om den börjar med
ftps://
är anslutningen implicit och på port 990.
Se till att inte blanda båda, till exempel att försöka ansluta till ftps://
och använda port 21, eftersom det inte kommer att ansluta, även om du vill göra explicit kryptering. Detta beror på att en explicit anslutning startar som en vanlig FTP-anslutning före AUTH-metoden.
Hur kan jag fastställa vilken metod som användes för att distribuera min Azure App Service?
Du kan ta reda på hur en app distribuerades genom att kontrollera programinställningarna. Om appen har distribuerats med hjälp av en extern paket-URL bör du se WEBSITE_RUN_FROM_PACKAGE
inställningen i programinställningarna med ett URL-värde. Eller om den har distribuerats med zip-distribution bör du se WEBSITE_RUN_FROM_PACKAGE
inställningen med värdet 1
. Om appen har distribuerats med Azure DevOps bör du se distributionshistoriken i Azure DevOps-portalen. Om Azure Functions Core Tools används bör du se distributionshistoriken i Azure-portalen.