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

Belangrijk

Cloud Services (klassiek) is nu afgeschaft voor nieuwe klanten en wordt op 31 augustus 2024 buiten gebruik gesteld voor alle klanten. 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-ondersteuningOndersteuning krijgen.

Ontbrekende runtime-afhankelijkheden

Als een rol in uw toepassing afhankelijk is van assembly's die geen deel uitmaken van de .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.

Controleer het volgende voordat u uw toepassing bouwt en verpakt:

  • 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 .NET Framework.
  • Zorg ervoor dat het web.config-bestand niet verwijst naar ongebruikte assembly's in het compilatie-element.
  • De buildactie van elk CSHTML-bestand is ingesteld op Inhoud. Hierdoor worden de bestanden correct weergegeven in het pakket en kunnen andere bestanden waarnaar wordt verwezen, in het pakket worden weergegeven.

Assembly is gericht op het verkeerde platform

Azure is een 64-bits omgeving. Daarom werken .NET-assembly's die voor een 32-bits doel zijn gecompileerd niet in 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 diagnostische gegevens Verbinding maken ionString-instelling

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 het volgende 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. Dit 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, 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.