Felsöka problem med att rollinstanser i Azure Cloud Services (extended-support) inte startar
I den här artikeln beskrivs hur du felsöker startfel i rollinstanser i Azure Cloud Services (utökad support).
Checklista för felsökning
Välj bland följande alternativ för att diagnostisera problem som uppstår i rollinstanser.
Alternativ 1: Inaktivera anpassade fel
Om du vill visa fullständig felinformation öppnar du web.config-filen för webbrollen, ställer in det anpassade felläget på Off
och distribuerar sedan om tjänsten:
Öppna lösningen i Visual Studio.
Öppna filen Web.config i Solution Explorer.
I avsnittet
system.web
lägger du till följande XML-kod:<customErrors mode="Off" />
Spara filen.
Packa om och distribuera om tjänsten.
När tjänsten har distribuerats om innehåller felmeddelanden som du kan få om tjänsten namnen på saknade sammansättningar eller DLL:er.
Alternativ 2: Använd PowerShell för att visa status för rollinstansen
Om du vill få information om körningstillståndet för rollinstansen kör du cmdleten Get-AzCloudServiceRoleInstanceView :
$roleInstanceView = @{
CloudServiceName = "<cloud-service-name>"
ResourceGroupName = "<resource-group-name>"
RoleInstanceName = "WebRole1_IN_0"
}
Get-AzCloudServiceRoleInstanceView @roleInstanceView
Status för rollinstansen visas i den första kolumnen, som du ser i följande exempelutdata:
Statuses PlatformFaultDomain PlatformUpdateDomain
-------- ------------------- --------------------
{RoleStateStarting} 0 0
Alternativ 3: Använd Azure Portal för att visa status för rollinstansen
Följ dessa steg om du vill visa statusinformation om en rollinstans i Azure Portal:
I Azure Portal söker du efter och väljer Molntjänster (utökad support).
I listan över molntjänster väljer du namnet på din molntjänst.
I menyfönstret tittar du under Inställningar och väljer sedan Roller och instanser.
Välj namnet på rollinstansen.
I fönstret rollinstans noterar du status för rollinstansen i fältet Status .
Alternativ 4: Använd Fjärrskrivbord för att visa felinformation
Om du vill komma åt rollen och visa fullständig felinformation använder du RDP (Remote Desktop Protocol) genom att följa dessa steg:
Lägg till fjärrskrivbordstillägget för Azure Cloud Services (utökad support).
När molntjänstinstansen visar statusen Klar i Azure Portal använder du Fjärrskrivbord för att logga in på molntjänsten. Mer information finns i Ansluta till rollinstanser med hjälp av Fjärrskrivbord.
Logga in på den virtuella datorn (VM) med de autentiseringsuppgifter som du använde för att konfigurera Fjärrskrivbord.
Öppna ett kommandotolksfönster .
Kör kommandot ipconfig. Kopiera det returnerade värdet för IPv4-adressen.
Öppna en webbläsare.
I adressfältet klistrar du in IPv4-adressen och lägger sedan till ett snedstreck och namnet på webbprogrammets standardfil. Exempel:
http://<ipv4-address>/default.aspx
Om du går till webbplatsen nu visas felmeddelanden som innehåller mer information. Här är ett exempel:
Serverfel i "/"-programmet.
Det gick inte att läsa in filen eller sammansättningen "Microsoft.WindowsAzure.StorageClient, Version=1.1.0.0, Culture=neutral, PublicKeyToken=<16-digit-hexadecimal-string>" eller något av dess beroenden. Det går inte att hitta den angivna filen.
Beskrivning: Ett ohanterat undantag inträffade under körningen av den aktuella webbbegäran. Läs stackspårningen för mer information om felet och var det har sitt ursprung i koden.
Undantagsinformation: System.IO.FileNotFoundException
Alternativ 5: Använd beräkningsemulatorn
Du kan använda Azure Compute-emulatorn för att diagnostisera och felsöka problem med saknade beroenden och Web.config-fel . För bästa resultat när du använder den här metoden för att diagnostisera problem använder du en dator eller virtuell dator som har en ren installation av Windows.
Så här diagnostiserar du problem med hjälp av Azure Compute-emulatorn:
Skapa molntjänstprojektet på utvecklingsdatorn.
I Utforskaren går du till mappen bin\debug i molntjänstprojektet.
Kopiera .csx-mappen och .cscfg-filen till den dator som du använder för att felsöka problem.
Öppna ett Azure SDK-kommandotolk på den rena datorn.
Kör följande
csrun
kommando i kommandotolken:csrun.exe /devstore:start
Kör följande kommando:
run csrun <path-to-.csx-folder> <path-to-.cscfg-file> /launchBrowser
När rollen startar visar webbläsaren detaljerad felinformation.
Om du behöver mer diagnos kan du använda standardverktygen för Windows-felsökning.
Alternativ 6: Använd IntelliTrace
Kommentar
Du kan inte använda IntelliTrace i Visual Studio 2022. IntelliTrace är fortfarande tillgängligt om du använder Visual Studio 2019, 2017 eller 2015.
För arbets- och webbroller som använder .NET Framework 4 kan du använda IntelliTrace. IntelliTrace är tillgängligt i Visual Studio Enterprise.
Så här distribuerar du molntjänsten medan IntelliTrace är aktiverat:
Kontrollera att Azure SDK 1.3 eller senare har installerats.
Distribuera lösningen i Visual Studio. När du konfigurerar distributionen markerar du kryssrutan Aktivera IntelliTrace för .NET 4-roller .
När rollinstansen har startat öppnar du Server Explorer.
Expandera noden Azure\Cloud Services.
Expandera distributionen om du vill visa en lista över rollinstanserna. Högerklicka sedan på en rollinstans.
Välj Visa IntelliTrace-loggar.
I IntelliTrace-sammanfattning går du till Undantagsdata och expanderar noden.
I listan med undantag letar du efter en rad som innehåller kolumnvärdet Typ av System.IO.FileNotFoundException. Motsvarande kolumnvärde för meddelande bör likna följande text:
Det gick inte att läsa in filen eller sammansättningen "Microsoft.WindowsAzure.StorageClient, Version=1.1.0.0, Culture=neutral, PublicKeyToken=<16-digit-hexadecimal-string>" eller något av dess beroenden. Det går inte att hitta den angivna filen.
Orsak 1: Molntjänståtgärden misslyckas på grund av RoleInstanceStartupTimeoutError
En eller flera rollinstanser i Azure Cloud Services (utökad support) kan vara långsamma att starta. Eller så kan din rollinstans återanvändas eller fastna i ett upptaget tillstånd och inte starta som förväntat. I den här situationen visas felmeddelandet för RoleInstanceStartupTimeoutError
rollprogrammet.
Rollprogrammet innehåller två delar som kan orsaka rollåtervinning:
- Startaktiviteter
- Rollkod (implementering av RoleEntryPoint)
Om rollen stoppas startar PaaS-agenten (plattform som en tjänst) om rollen.
Följ dessa steg för att avgöra om problemet orsakas av en startaktivitet:
Försök att använda Fjärrskrivbord för att ansluta till den problematiska rollinstansen.
När du har anslutit till rollinstansen väljer du Start och söker sedan efter och väljer Aktivitetshanteraren.
Om du vill se en lista över processer väljer du fliken Information i Aktivitetshanteraren.
Kontrollera om det finns processer för WaIISHost.exe (för en WebRole) eller WaWorkerHost.exe (för en WorkerRole). Om båda dessa processer saknas misslyckas förmodligen startaktiviteten.
Kunde du kontrollera att problemet orsakades av en startaktivitet? I så fall kan du använda följande lösning. Lösningen är dock endast tillgänglig om startaktiviteten är en enkel aktivitet eller förgrundsaktivitet. Lösningen gäller inte för startaktiviteter i bakgrunden. De körs asynkront parallellt med starten av rollen.
Lösning: Felsöka startaktivitetsskriptet
Om du vill felsöka ett startaktivitetsfel felsöker du skriptet som körs när den virtuella datorn startar. Det här startaktivitetsskriptet utgörs av filen Startup.cmd. För att undersöka problemen i skriptet kan du välja bland följande alternativ:
Visa loggfilen C:\Resources\WaHostBootstrapper.log. Den här filen är loggen för WaHostBootstrapper.exe processen. Den här processen ansvarar för startaktiviteter. En beskrivning finns i arbetsflödet för den klassiska Windows Azure-arkitekturen för virtuella datorer. Sök sedan efter eventuella fel eller undantag som innebär att köra Startup.cmd. Kontrollera särskilt om slutkoden är 0. Om den inte är det har startaktiviteten slutförts men innehåller fel. Om det inte finns några loggar som är relaterade till slutkoden för skriptet körs startaktiviteten fortfarande.
Om startaktivitetsskriptet inte kan köras fritt i produktionsmiljön på grund av den förväntade påverkan på verksamheten anpassar du loggningsmekanismen på kommandoraden. Du kan till exempel omdirigera utdata från nyckelinformation i ett skriptkommando till en fil. Ett sätt att göra detta är att lägga
> "%TEMP%\StartupLog.txt"
till i slutet av kommandot.Kör startaktivitetsskriptet manuellt på kommandoraden. Platserna för det här skriptet för WebRole- eller WorkerRole-rollerna visas i följande tabell.
Roll Skriptplats WebRole E:\approot\bin\Startup.cmd WorkerRole E:\approot\Startup.cmd
Orsak 2: DLL:er eller sammansättningar saknas
Rollinstanser som inte svarar och rollinstanser som växlar mellan tillstånd kan orsakas av saknade DLL:er eller sammansättningar.
Här följer några symtom på saknade DLL:er eller sammansättningar:
Rollinstansen växlar genom tillstånden Initiera, Upptagen och Stoppa .
Rollinstansen har flyttats till tillståndet Klar , men sidan visas inte i webbappen.
Om en webbplats distribueras i en webbroll men saknar en DLL kan följande serverkörningsfel visas.
Serverfel i "/"-programmet.
Körningsfel
Beskrivning: Ett programfel uppstod på servern. De aktuella anpassade felinställningarna för det här programmet förhindrar att information om programfelet visas via fjärranslutning (av säkerhetsskäl). Det kan dock visas av webbläsare som körs på den lokala serverdatorn.
Information: Om du vill att information om det här specifika felmeddelandet ska kunna visas på fjärrdatorn skapar du en
<customErrors>
tagg med en konfigurationsfil för "web.config" som finns i rotkatalogen för det aktuella webbprogrammet. Den här<customErrors>
taggen bör sedan ha attributet "mode
" inställt på "Off
".
Lösning: Lösa saknade DLL:er och sammansättningar
Så här löser du fel med saknade DLL:er och sammansättningar:
Öppna lösningen i Visual Studio.
Öppna mappen Referenser i Solution Explorer.
Välj den sammansättning som identifieras i felmeddelandet.
I Egenskaper anger du egenskapen Kopiera lokal till Sant.
Distribuera om molntjänsten.
När du har kontrollerat att felen inte längre visas distribuerar du om tjänsten. När du konfigurerar distributionen väljer du inte kryssrutan Aktivera IntelliTrace för .NET 4-roller .
Nästa steg
Mer information
Information om den inledande konfigurationen, körningen och exempel på startuppgifter i den klassiska molntjänsten finns i följande artiklar:
- Så här konfigurerar och kör du startuppgifter för en Azure Cloud Service (klassisk)
- Startuppgifter för Common Cloud Service (klassisk)
Kontakta oss för att få hjälp
Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.