Dela via


Vanliga problem som gör att Azure Cloud Service-roller (klassiska) återanvänds

Viktigt!

Cloud Services (klassisk) är nu inaktuellt för alla kunder från och med den 1 september 2024. Alla befintliga distributioner som körs stoppas och stängs av av Microsoft och data försvinner permanent från och med oktober 2024. Nya distributioner bör använda den nya Azure Resource Manager-baserade distributionsmodellen Azure Cloud Services (utökad support).

Den här artikeln beskriver några av de vanligaste orsakerna till distributionsproblem och innehåller felsökningstips som hjälper dig att lösa dessa problem. En indikation på att det finns ett problem med ett program är när rollinstansen inte startar eller växlar mellan initierings-, upptagen- och stopptillstånden.

Om ditt Azure-problem inte åtgärdas i den här artikeln går du till Azure-forumen på Microsoft Q &A och Stack Overflow. Du kan publicera ditt problem i dessa forum eller publicera till @AzureSupport på Twitter. Du kan också skicka en Azure Support begäran. Om du vill skicka en supportbegäran går du till sidan Azure Support och väljer Hämta support.

Saknar körningsberoenden

Om en roll i ditt program förlitar sig på någon sammansättning som inte ingår i .NET Framework eller Det hanterade Azure-biblioteket måste du uttryckligen inkludera den sammansättningen i programpaketet. Tänk på att andra Microsoft-ramverk inte är tillgängliga i Azure som standard. Om din roll förlitar sig på ett sådant ramverk måste du lägga till dessa sammansättningar i programpaketet.

Innan du skapar och paketera ditt program kontrollerar du att följande instruktioner är sanna:

  • Om du använder Visual Studio kontrollerar du att egenskapen Kopiera lokal är inställd på Sant för varje refererad sammansättning i projektet som inte ingår i Azure SDK eller .NET Framework.
  • Kontrollera att filen web.config inte refererar till några oanvända sammansättningar i kompileringselementet.
  • Byggåtgärden för varje .cshtml-fil är inställd på Innehåll. Den här inställningen ser till att filerna visas korrekt i paketet och gör att andra refererade filer visas i paketet.

Sammansättningen pekar på fel plattform

Azure är en 64-bitars miljö. Därför är .NET-sammansättningar som kompilerats för ett 32-bitarsmål inte kompatibla med Azure.

Rollen genererar ohanterade undantag vid initiering eller stopp

Undantag som genereras av metoderna i klassen RoleEntryPoint , som innehåller metoderna OnStart, OnStop och Run , är ohanterade undantag. Om ett ohanterat undantag inträffar i någon av dessa metoder återanvänds rollen. Om rollen återanvänds upprepade gånger kan den utlösa ett ohanterat undantag varje gång den försöker starta.

Rollen returneras från Run-metoden

Run-metoden är avsedd att köras på obestämd tid. Om koden åsidosätter run-metoden bör den ligga i viloläge på obestämd tid. Om metoden Run returnerar återanvänds rollen.

Felaktig diagnostikAnslutningString-inställning

Om programmet använder Azure Diagnostics måste tjänstkonfigurationsfilen ange konfigurationsinställningen DiagnosticsConnectionString . Den här inställningen bör ange en HTTPS-anslutning till ditt lagringskonto i Azure.

Kontrollera att inställningen DiagnosticsConnectionString är korrekt innan du distribuerar programpaketet till Azure genom att kontrollera att följande instruktioner är sanna:

  • Inställningen DiagnosticsConnectionString pekar på ett giltigt lagringskonto i Azure.
    Som standard pekar den här inställningen på det emulerade lagringskontot, så du måste uttryckligen ändra den här inställningen innan du distribuerar programpaketet. Om du inte ändrar den här inställningen utlöses ett undantag när rollinstansen försöker starta diagnostikövervakaren. Den här händelsen kan leda till att rollinstansen återvinns på obestämd tid.
  • Anslutningssträng anges i följande format. (Protokollet måste anges som HTTPS.) Ersätt MyAccountName med namnet på ditt lagringskonto och MyAccountKey med din åtkomstnyckel:
DefaultEndpointsProtocol=https;AccountName=MyAccountName;AccountKey=MyAccountKey

Om du utvecklar ditt program med hjälp av Azure Tools för Microsoft Visual Studio kan du använda egenskapssidorna för att ange det här värdet.

Exporterat certifikat innehåller inte privat nyckel

Om du vill köra en webbroll under Transport Layer Security (TLS) måste du se till att det exporterade hanteringscertifikatet innehåller den privata nyckeln. Om du använder Windows Certificate Manager för att exportera certifikatet måste du välja Ja för alternativet Exportera den privata nyckeln . Certifikatet måste exporteras i .pfx-format, vilket är det enda format som stöds för närvarande.

Nästa steg

Visa fler felsökningsartiklar för molntjänster.

Visa fler scenarier för rollåterställning i Kevin Williamsons bloggserie.