Delen via


Veelvoorkomende problemen die ertoe leiden dat Rollen van Azure Cloud Service (klassiek) worden gerecycled

Belangrijk

Cloud Services (klassiek) is vanaf 1 september 2024 afgeschaft voor alle klanten. Bestaande actieve implementaties worden gestopt en afgesloten door Microsoft en de gegevens gaan vanaf oktober 2024 definitief verloren. Nieuwe implementaties moeten gebruikmaken van het nieuwe op Azure Resource Manager gebaseerde implementatiemodel Azure Cloud Services (uitgebreide ondersteuning).

In dit artikel worden enkele veelvoorkomende oorzaken van implementatieproblemen besproken en vindt u tips voor het oplossen van deze problemen. Een indicatie dat er een probleem is met een toepassing, is wanneer het rolexemplaren niet kunnen worden gestart, of dat deze cycli tussen de status initialiseren, bezet en stoppen.

Als uw Azure-probleem niet wordt opgelost in dit artikel, gaat u naar de Azure-forums op Microsoft Q & A en Stack Overflow. U kunt uw probleem posten in deze forums of posten op @AzureSupport op Twitter. U kunt ook een Azure-ondersteuningsaanvraag indienen. Als u een ondersteuningsaanvraag wilt indienen, selecteert u op de pagina Azure-ondersteuning Ondersteuning krijgen.

Ontbrekende runtime-afhankelijkheden

Als een rol in uw toepassing afhankelijk is van assembly's die geen deel uitmaken van .NET Framework of de beheerde Azure-bibliotheek, moet u die assembly expliciet opnemen in het toepassingspakket. Houd er rekening mee dat andere Microsoft-frameworks niet standaard beschikbaar zijn in Azure. Als uw rol afhankelijk is van een dergelijk framework, moet u deze assembly's toevoegen aan het toepassingspakket.

Voordat u uw toepassing bouwt en verpakt, controleert u of de volgende instructies waar zijn:

  • Als u Visual Studio gebruikt, moet u ervoor zorgen dat de eigenschap Copy Local is ingesteld op True voor elke assembly waarnaar wordt verwezen in uw project die geen deel uitmaakt van de Azure SDK of het .NET Framework.
  • Zorg ervoor dat het bestand web.config niet verwijst naar ongebruikte assembly's in het compilatie-element.
  • De buildactie van elk CSHTML-bestand is ingesteld op Inhoud. Deze instelling zorgt ervoor dat de bestanden correct worden weergegeven in het pakket en dat andere bestanden waarnaar wordt verwezen, in het pakket kunnen worden weergegeven.

Assembly is gericht op het verkeerde platform

Azure is een 64-bits omgeving. Daarom zijn .NET-assembly's die zijn gecompileerd voor een 32-bits doel niet compatibel met Azure.

Rol genereert niet-verwerkte uitzonderingen tijdens het initialiseren of stoppen

Eventuele uitzonderingen die worden gegenereerd door de methoden van de klasse RoleEntryPoint , waaronder de methoden OnStart, OnStop en Run , zijn niet-verwerkte uitzonderingen. Als er een niet-verwerkte uitzondering optreedt in een van deze methoden, wordt de rol opnieuw gebruikt. Als de rol herhaaldelijk wordt gerecycled, kan deze telkens wanneer de rol wordt gestart, een onverwerkte uitzondering genereren.

Rol wordt geretourneerd uit methode Run

De methode Uitvoeren is bedoeld om voor onbepaalde tijd uit te voeren. Als uw code de methode Uitvoeren overschrijft, moet deze voor onbepaalde tijd in de slaapstand worden gezet. Als de methode Uitvoeren wordt geretourneerd, wordt de rol opnieuw gebruikt.

Onjuiste instelling DiagnosticsConnectionString

Als de toepassing gebruikmaakt van Azure Diagnostics, moet uw serviceconfiguratiebestand de DiagnosticsConnectionString configuratie-instelling opgeven. Met deze instelling moet een HTTPS-verbinding met uw opslagaccount in Azure worden opgegeven.

Controleer of de volgende instructies waar zijn om ervoor te zorgen dat uw DiagnosticsConnectionString instelling juist is voordat u uw toepassingspakket implementeert in Azure:

  • De DiagnosticsConnectionString instelling verwijst naar een geldig opslagaccount in Azure.
    Deze instelling verwijst standaard naar het geëmuleerde opslagaccount, dus u moet deze instelling expliciet wijzigen voordat u uw toepassingspakket implementeert. Als u deze instelling niet wijzigt, wordt er een uitzondering gegenereerd wanneer het rolexemplaren de diagnostische monitor probeert te starten. Deze gebeurtenis kan ertoe leiden dat het rolexemplaren voor onbepaalde tijd worden gerecycled.
  • De verbindingsreeks wordt opgegeven in de volgende indeling. (Het protocol moet worden opgegeven als HTTPS.) Vervang MyAccountName door de naam van uw opslagaccount en MyAccountKey door uw toegangssleutel:
DefaultEndpointsProtocol=https;AccountName=MyAccountName;AccountKey=MyAccountKey

Als u uw toepassing ontwikkelt met behulp van Azure Tools voor Microsoft Visual Studio, kunt u de eigenschappenpagina's gebruiken om deze waarde in te stellen.

Geëxporteerd certificaat bevat geen persoonlijke sleutel

Als u een webrol wilt uitvoeren onder Tls (Transport Layer Security), moet u ervoor zorgen dat het geëxporteerde beheercertificaat de persoonlijke sleutel bevat. Als u Windows Certificate Manager gebruikt om het certificaat te exporteren, selecteert u Ja voor de optie De persoonlijke sleutel exporteren. Het certificaat moet worden geëxporteerd in de PFX-indeling. Dit is de enige indeling die momenteel wordt ondersteund.

Volgende stappen

Bekijk meer artikelen over probleemoplossing voor cloudservices.

Bekijk meer scenario's voor het recyclen van rollen in de blogserie van Kevin Williamson.