Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Dit artikel helpt u bij het oplossen van veelvoorkomende fouten die optreden wanneer u de Azure-web-app (AzureWebApp@1) of Azure App Service Deploy(AzureRmWebAppDeployment@4) -taken in Azure Pipelines gebruikt.
Dit is een artikel over probleemoplossing. Voor meer informatie over App Service-implementaties raadpleegt u Implementeren in Azure App Service met behulp van Azure Pipelines, dat betrekking heeft op AzureWebApp@1 en geavanceerde scenario's met AzureRmWebAppDeployment@4. Zie Een aangepaste container implementeren in App Service met behulp van Azure Pipelines, waaronder AzureRmWebAppDeployment@4 voorbeelden voor implementaties op basis van containers.
Aanbeveling
Voordat u problemen oplost, verzamelt u foutopsporingslogboeken door uitgebreide logboekregistratie in te schakelen voor de pijplijnuitvoering. U kunt ook diagnostische logboeken verzamelen van de Kudu-service en de functie Problemen vaststellen en oplossen in Azure Portal voor uw App Service. Controleer de Azure DevOps-status en de Azure-status om servicestoringen uit te sluiten.
JavaScript-heap uit geheugen
Symptoom
De implementatietaak mislukt met de volgende fout:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
Oorzaak
Deze fout treedt op wanneer de taak probeert een groot implementatiepakket uit te pakken en opnieuw uit te pakken en de bewerking het beschikbare geheugen op de agent overschrijdt. Door Microsoft gehoste agents hebben beperkte resources, wat deze fout bij grote pakketten kan veroorzaken.
Resolutie / Besluit
Gebruik de azure-web-app-taak (AzureWebApp@1) in plaats van de AzureRmWebAppDeployment@4 taak voor App Service-implementaties.
De AzureWebApp@1 taak verwerkt grotere pakketten efficiënter.
Voor complexere implementatiescenario's waarvoor XML-transformatie is vereist, gebruikt u de Azure App Service Deploy-taak (AzureRmWebAppDeployment@4) met een kleiner pakket of splitst u transformaties in een afzonderlijke pijplijnstap.
"ECONNRESET" tijdens de implementatie
Symptoom
De implementatietaak mislukt met de volgende fout:
Encountered a retriable error: ECONNRESET. Message: read ECONNRESET
Oorzaak
Tijdens de implementatie is een netwerkverbinding tussen de pijplijnagent en de App Service opnieuw ingesteld. Veelvoorkomende oorzaken zijn onder andere:
- Door Microsoft gehoste agenten die worden ingevoerd in een App Service Environment (ASE): De ASE kan binnenkomende verbindingen van IP-adressen van agenten blokkeren.
- Zelf-gehoste agents: Een wisselvallige of instabiele netwerkverbinding tussen de agent en de App Service.
Resolutie / Besluit
Voor door Microsoft gehoste agents met ASE:
Zorg ervoor dat uw ASE-netwerkbeveiligingsregels binnenkomende verbindingen toestaan vanuit de IP-adresbereiken van de Door Microsoft gehoste agent voor uw geografie. Zie Toegestane IP-adressen en domein-URL's voor de lijst met IP-adresbereiken.
Voor zelfgehoste agents:
- Controleer of de netwerkverbinding tussen uw agent en de App Service stabiel is.
- Als het probleem zich blijft voordoen, maakt u een ondersteuningsticket met het Azure App Service- of Azure-netwerkteam voor verder onderzoek.
'Kan webpakket niet implementeren in App Service'
Symptoom
De implementatietaak mislukt met een of beide van de volgende fouten:
[error]Failed to deploy web package to App Service.
Package deployment using ZIP Deploy failed. Refer logs for more details.
Oorzaak
De taak maakt gebruik van de Kudu-API zipDeploy voor implementatie en de API heeft een fout geretourneerd.
Deze fout kan optreden wanneer App Service het binnenkomende pakket niet correct kan verwerken.
Resolutie / Besluit
Stel de app-instelling op uw App Service in op WEBSITE_RUN_FROM_PACKAGE1.
- Ga in Azure Portal naar uw App Service.
- Selecteer Configuratie>Toepassingsinstellingen.
- Voeg de instelling
WEBSITE_RUN_FROM_PACKAGEtoe of werk deze bij met een waarde van1. - Sla de configuratie op en voer de implementatie opnieuw uit.
Zie Uw app uitvoeren vanuit een pakket voor meer informatie.
"EMFILE: te veel geopende bestanden"
Symptoom
De implementatietaak mislukt met een van de volgende fouten:
EMFILE: too many open files
Error: Package deployment using ZIP Deploy failed
Oorzaak
De implementatietaak opent te veel bestandshandles bij het uitpakken van een groot pakket, waarbij de bestandsdescriptorlimiet van het besturingssysteem wordt overschreden.
Resolutie / Besluit
Gebruik een van de volgende tijdelijke oplossingen:
Optie 1: de Azure-web-app-taak gebruiken
Schakel over van AzureRmWebAppDeployment@4 de azure-web-app (AzureWebApp@1) taak, die grote pakketten anders afhandelt.
Optie 2: Bestanden extraheren vóór implementatie
Gebruik de taak Bestanden uitpakken om het pakket in een eerdere stap uit te pakken en implementeer vervolgens de uitgepakte map. Met deze methode voorkomt u dat de implementatietaak het pakket zelf moet uitpakken.
steps:
- task: ExtractFiles@1
displayName: 'Extract files'
inputs:
archiveFilePatterns: '$(InputPackageZipPath)'
destinationFolder: '$(OutputUnzippedPath)'
- task: AzureRmWebAppDeployment@4
displayName: 'Azure App Service Deploy'
inputs:
azureSubscription: 'Subscription'
WebAppName: 'app-name'
package: '$(OutputUnzippedPath)'
Fout 'Resource bestaat niet'
Symptoom
De implementatietaak mislukt met de volgende fout:
Error: Resource '<ResourceName>' doesn't exist. Resource should exist before deployment.
Deze fout kan optreden met Azure Web App-taken, Azure App Service Deploy-taken, Azure Functions-taken en ARM-sjabloonimplementatietaken.
Oorzaak
De taak roept Azure-API's aan die afhankelijk zijn van resourcegegevens in de cache. Als de App Service of een andere Azure-resource onlangs is gemaakt — ofwel in dezelfde pijplijn, door een ander hulpprogramma, of net voordat de pijplijn werd uitgevoerd — wordt de nieuwe resource mogelijk nog niet weergegeven in de cache.
Resolutie / Besluit
Voeg een vertragingsstap toe aan uw pijplijn voordat de implementatietaak wordt uitgevoerd, zodat de Azure-cache tijd heeft om te worden bijgewerkt.
steps:
- task: PowerShell@2
displayName: 'Wait for resource propagation'
inputs:
targetType: inline
script: Start-Sleep -Seconds 60
Als het toevoegen van een vertraging de fout niet oplost, maakt u een ondersteuningsticket met het Azure-serviceteam voor het betreffende resourcetype.
"Geen pakket gevonden met opgegeven patroon"
Symptoom
De implementatietaak mislukt met een fout die aangeeft dat er geen pakket is gevonden dat overeenkomt met het opgegeven patroon.
Oorzaak
Het artefact met het implementatiepakket is niet gepubliceerd in de build of in een eerdere fase, of het is niet gedownload in de huidige opdracht.
Resolutie / Besluit
- Controleer of het pakket door de build of een vorige pijplijnfase wordt gepubliceerd als een pijplijnartefact.
- Controleer of de huidige taak een downloadstap voor het artefact bevat.
- Controleer of het bestandspadpatroon in de implementatietaak overeenkomt met het werkelijke artefactpad.
Publiceren met de zip deploy-optie wordt niet ondersteund voor het MSBuild-pakkettype.
Symptoom
De implementatietaak mislukt met een fout over zip-implementatie die niet wordt ondersteund voor MSBuild-pakkettypen.
Oorzaak
Webpakketten die zijn gemaakt door de MSBuild-taak (met standaardargumenten) gebruiken een geneste mapstructuur waarvoor Web Deploy is vereist voor de juiste implementatie. De zip-implementatieoptie kan deze pakketstructuur niet verwerken.
Resolutie / Besluit
Gebruik de AzureRmWebAppDeployment@4 taak met Web Deploy in plaats van zip deploy of herstructureer uw build om een op mappen gebaseerde uitvoer te produceren.
Als u een mapuitvoer van MSBuild wilt produceren, voegt u het /p:PackageAsSingleFile=false argument toe aan uw MSBuild-taak.
5xx-fout tijdens de implementatie
Symptoom
De implementatietaak mislukt met een 500, 502of 503andere HTTP-foutcode van 5xx.
Oorzaak
Er is een fout aan de serverzijde opgetreden in de App Service of de onderliggende infrastructuur. Veelvoorkomende oorzaken zijn onder andere onvoldoende capaciteit van Het App Service-plan, een doorlopende Azure-storing of de App Service die een gestopte of foutstatus heeft.
Resolutie / Besluit
- Controleer de Azure-status op lopende storingen.
- Controleer in Azure Portal of de App Service wordt uitgevoerd en of het App Service-plan voldoende capaciteit heeft.
- Schaal het App Service-plan op om de CPU, het RAM- en schijfruimte te vergroten of probeer een ander plan.
- Bekijk de Kudu-logboeken voor meer informatie over de fout aan de serverzijde.
Release loopt vast en mislukt of '503-service is niet beschikbaar'
Symptoom
Een implementatie wordt uitgevoerd voor een langere periode en mislukt uiteindelijk, er treedt een 503 Service Unavailable fout op of de implementatiegeschiedenis in Kudu-logboeken kan niet worden bijgewerkt.
Oorzaak
Deze problemen treden meestal op wanneer het App Service-plan onvoldoende capaciteit heeft om de implementatie naast de actieve toepassing af te handelen.
Resolutie / Besluit
- Schaal het App Service-exemplaar omhoog om de beschikbare CPU, RAM en schijfruimte te vergroten.
- Probeer te implementeren in een ander App Service-plan om resourceconflicten uit te sluiten.
- Bekijk de diagnostische Kudu-logboeken van Azure Portal voor specifieke fouten.
- Voor implementaties zonder downtime gebruikt u implementatieslots met slotwisselingen in plaats van rechtstreeks naar het productieslot te implementeren.
Netwerkverbindingsfouten tijdens de implementatie
Symptoom
De implementatietaak mislukt met een netwerkfout, zoals:
Could not connect to the remote computer ('<AppName>.scm.azurewebsites.net')
Oorzaak
De pijplijnagent kan het Kudu-eindpunt van de App Service (SCM-site) niet bereiken vanwege firewallregels, proxyconfiguratie of netwerkbeperkingen.
Resolutie / Besluit
Controleer de netwerkconfiguratie voor uw agenttype:
- Door Microsoft gehoste agents: Zorg ervoor dat uw firewall verbindingen toestaat vanuit de IP-adresbereiken van de door Microsoft gehoste agent.
- Zelf-hostende agents: Controleer de proxy-instellingen en de netwerkverbinding. Zie Een zelf-gehoste agent uitvoeren achter een webproxy.
- App Service Environment (ASE): Controleer of de ASE-netwerkbeveiligingsgroep binnenkomende verbindingen op het SCM-eindpunt toestaat. Zie Netwerken voor een App Service-omgeving.
'Kan het toegangstoken voor Azure niet ophalen'
Symptoom
De implementatietaak mislukt met de volgende fout:
Could not fetch access token for Azure. Verify if the Service Principal used is valid and not expired.
Oorzaak
De service-principal die de Azure-serviceverbinding ondersteunt, is verlopen, uitgeschakeld of ontbeert de vereiste machtigingen.
Resolutie / Besluit
Controleer de service-principal in Microsoft Entra ID en vernieuw de sleutel of het certificaat als dit is verlopen. Zie Problemen met azure Resource Manager-serviceverbindingen oplossen voor gedetailleerde stappen voor probleemoplossing.
SSL-fout in de implementatietaak
Symptoom
De implementatietaak mislukt met een SSL-gerelateerde fout.
Oorzaak
App Service heeft een probleem met de configuratie van een SSL-certificaat, zoals het gebruik van een niet-vertrouwd of zelfondertekend certificaat.
Resolutie / Besluit
Zorg ervoor dat het certificaat dat door App Service wordt gebruikt, is ondertekend door een vertrouwde certificeringsinstantie. Zie TLS/SSL-certificaten toevoegen en beheren in Azure App Service voor meer informatie.
Foutcodes bij webimplementatie
Symptoom
Wanneer u Web Deploy als de implementatiemethode gebruikt, wordt in het taaklogboek een foutcode voor webimplementatie weergegeven, zoals ERROR_CONNECTION_NOT_FOUND, ERROR_DESTINATION_NOT_REACHABLEof andere.
Oorzaak
Bij Web Deploy is een probleem opgetreden bij het communiceren met of implementeren in de App Service.
Resolutie / Besluit
Zie Web Deploy-foutcodes voor een volledige lijst met foutcodes en de bijbehorende oplossingen.
'ERROR_FILE_IN_USE' bij het deployen van .NET-apps
Symptoom
De implementatietaak mislukt met een ERROR_FILE_IN_USE fout bij het implementeren van een .NET-toepassing in App Service in Windows.
Oorzaak
Toepassingsbestanden worden vergrendeld door het actieve toepassingsproces tijdens de implementatie.
Resolutie / Besluit
Schakel in de AzureRmWebAppDeployment@4 taak de volgende opties in:
-
Naam van vergrendelde bestanden wijzigen (
enableMSDeployAppOffline: true) -
App offline halen (
enableMSDeployRetry: true)
Voor implementaties zonder downtime gebruikt u implementatieslots met slotwisselingen.
App is geïmplementeerd, maar werkt niet (Windows)
Symptoom
De implementatie wordt zonder fouten voltooid, maar de toepassing reageert niet of retourneert fouten wanneer u ernaar bladert.
Oorzaak
In Windows App Service is een web.config bestand vereist voor veel toepassingstypen (zoals Node.js of Python).
Als het bestand ontbreekt, kan IIS geen aanvragen doorsturen naar uw toepassing.
Resolutie / Besluit
Voeg een web.config bestand toe aan de hoofdmap van uw toepassing.
Zie Een aangepaste container configureren voor Azure App Service en de frameworkspecifieke richtlijnen voor meer informatie:
- Een Node.js-app configureren voor Azure App Service
- Een Python-app configureren voor Azure App Service
De implementatie van de Function App mislukt met de AzureRmWebAppDeployment-taak.
Symptoom
Het implementeren van een Azure-functie-app met behulp van de AzureRmWebAppDeployment@4 taak mislukt.
Oorzaak
De AzureRmWebAppDeployment@4 taak is ontworpen voor App Service-implementaties en kan functie-app-specifieke vereisten mogelijk niet correct verwerken.
Resolutie / Besluit
Gebruik in plaats daarvan de Azure Functions-taak (AzureFunctionApp@1) die speciaal is ontworpen voor implementaties van functie-apps.
Verwante inhoud
- Implementeren in App Service met behulp van Azure Pipelines
- AzureWebApp@1 - Azure Web App v1-taak
- AzureRmWebAppDeployment@4 - Azure App Service-taak v4 implementeren
- Troubleshoot Azure Resource Manager service connections (Verbindingsproblemen met Azure Resource Manager-service oplossen)
- Problemen met pijplijnuitvoeringen oplossen
- Logboeken raadplegen om problemen met pijplijnen vast te stellen