Dela via


Felsöka rollinstanser i Azure Cloud Services (utökad support) som inte startar

Den här artikeln beskriver 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 duWeb.config-filen för webbrollen, ställer in det anpassade felläget på Offoch distribuerar sedan om tjänsten:

  1. Öppna lösningen i Visual Studio.

  2. Öppna filenWeb.configi Solution Explorer.

  3. I avsnittet system.web lägger du till följande XML-kod:

    <customErrors mode="Off" />
    
  4. Spara filen.

  5. 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 rollinstansens status

Följ dessa steg om du vill visa statusinformation om en rollinstans i Azure Portal:

  1. I Azure Portal söker du efter och väljer Molntjänster (utökad support).

  2. I listan över molntjänster väljer du namnet på din molntjänst.

  3. I menyfönstret tittar du under Inställningar och väljer sedan Roller och instanser.

  4. Välj namnet på rollinstansen.

  5. 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:

  1. Lägg till fjärrskrivbordstillägget för Azure Cloud Services (utökad support).

  2. När molntjänstinstansen visar statusen Klari 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.

  3. Logga in på den virtuella datorn (VM) med de autentiseringsuppgifter som du använde för att konfigurera Fjärrskrivbord.

  4. Öppna ett kommandotolksfönster .

  5. Kör kommandot ipconfig . Kopiera det returnerade värdet för IPv4-adressen.

  6. Öppna en webbläsare.

  7. Klistra in IPv4-adressen i adressfältet och lägg sedan till ett snedstreck och namnet på webbprogrammets standardfil. Till 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 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. Använd en dator eller virtuell dator som har en ren installation av Windows för bästa resultat när du använder den här metoden för att diagnostisera problem.

Så här diagnostiserar du problem med hjälp av Azure Compute-emulatorn:

  1. Installera Azure SDK.

  2. Skapa molntjänstprojektet på utvecklingsdatorn.

  3. I Utforskaren går du till mappen bin\debug i molntjänstprojektet.

  4. Kopiera .csx-mappen och .cscfg-filen till den dator som du använder för att felsöka problem.

  5. Öppna ett Azure SDK-kommandotolkfönster på den rena datorn.

  6. Kör följande csrun kommando i kommandotolken:

    csrun.exe /devstore:start
    
  7. 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 det krävs mer diagnos kan du använda vanliga felsökningsverktyg för Windows.

Alternativ 6: Använd IntelliTrace

Obs!

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:

  1. Kontrollera att Azure SDK 1.3 eller en senare version har installerats.

  2. Distribuera lösningen i Visual Studio. När du konfigurerar distributionen markerar du kryssrutan Aktivera IntelliTrace för .NET 4-roller .

  3. När rollinstansen har startats öppnar du Server Explorer.

  4. Expandera noden Azure\Cloud Services.

  5. Expandera distributionen om du vill visa en lista över rollinstanserna. Högerklicka sedan på en rollinstans.

  6. Välj Visa IntelliTrace-loggar.

  7. I IntelliTrace-sammanfattning går du till Undantagsdata och expanderar noden.

  8. I listan över undantag letar du upp en rad som innehåller kolumnvärdet Typ för System.IO.FileNotFoundException. Motsvarande meddelandekolumnvärde 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 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 rollinstansen återanvändas eller fastnar i ett upptaget tillstånd och startar inte som förväntat. I det här fallet visas felmeddelandet för RoleInstanceStartupTimeoutError rollprogrammet.

Rollprogrammet innehåller två delar som kan orsaka rollåtervinning:

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 startuppgift:

  1. Försök att använda Fjärrskrivbord för att ansluta till den problematiska rollinstansen.

  2. När du har anslutit till rollinstansen väljer du Start och söker sedan efter och väljer Aktivitetshanteraren.

  3. Om du vill se en lista över processer väljer du fliken Information i Aktivitetshanteraren.

  4. 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 en startuppgift.

Kunde du kontrollera att problemet orsakades av en startuppgift? 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 startuppgifter i bakgrunden. De körs asynkront parallellt med starten av rollen.

Lösning: Felsöka startuppgiftsskriptet

Felsöka ett startfel genom att felsöka skriptet som körs under starten av den virtuella datorn. Det här startuppgiftsskriptet är den Startup.cmd filen. Om du vill 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 startåtgärder. Det beskrivs i arbetsflödet för den klassiska Windows Azure-arkitekturen för virtuella datorer. Sök sedan efter fel eller undantag som inbegriper körning av Startup.cmd. Kontrollera särskilt om slutkoden är 0. Om den inte är det har startuppgiften slutförts men har fel. Om det inte finns loggar som är relaterade till slutkoden för skriptet körs startuppgiften 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 symptom 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). Den kan dock visas av webbläsare som körs på den lokala serverdatorn.

Detaljer: Om du vill att information om det här specifika felmeddelandet ska kunna visas på fjärrdatorn skapar du en <customErrors> tagg med konfigurationsfilen "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 som saknas

Så här löser du fel med saknade DLL:er och sammansättningar:

  1. Öppna lösningen i Visual Studio.

  2. Öppna mappen Referenser i Solution Explorer.

  3. Välj den sammansättning som identifieras i felmeddelandet.

  4. I Egenskaper anger du egenskapen Kopiera lokal till Sant.

  5. 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:

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.