Sdílet prostřednictvím


Běžné problémy, které způsobují recyklaci rolí Azure Cloud Service (Classic)

Důležité

Od 1. září 2024 je služba Cloud Services (Classic) pro všechny zákazníky zastaralá. Microsoft zastaví a vypne všechna stávající spuštěná nasazení a data se od října 2024 trvale ztratí. Nová nasazení by měla používat nový model nasazení založený na Azure Resource Manageru na Azure Cloud Services (rozšířená podpora).

Tento článek popisuje některé běžné příčiny problémů s nasazením a obsahuje tipy pro řešení potíží, které vám pomůžou tyto problémy vyřešit. Indikací, že u aplikace existuje problém, je situace, kdy se instance role nespustí, nebo cyklicky prochází mezi inicializačním, zaneprázdněným a zastavovacím stavem.

Pokud váš problém s Azure není v tomto článku vyřešený, navštivte fóra Azure na webu Microsoft Q &A a Stack Overflow. Svůj problém můžete publikovat na těchto fórech nebo publikovat na @AzureSupport na Twitteru. Můžete také odeslat podpora Azure žádost. Pokud chcete odeslat žádost o podporu, na stránce podpora Azure vyberte Získat podporu.

Chybějící závislosti modulu runtime

Pokud role ve vaší aplikaci spoléhá na jakékoli sestavení, které není součástí rozhraní .NET Framework nebo spravované knihovny Azure, musíte toto sestavení explicitně zahrnout do balíčku aplikace. Mějte na paměti, že ostatní architektury Microsoftu nejsou ve výchozím nastavení dostupné v Azure. Pokud vaše role spoléhá na takovou architekturu, musíte tato sestavení přidat do balíčku aplikace.

Před sestavením a zabalení aplikace ověřte, že platí následující příkazy:

  • Pokud používáte Visual Studio, ujistěte se, že vlastnost Copy Local je nastavena na hodnotu True pro každé odkazované sestavení v projektu, které není součástí sady Azure SDK nebo rozhraní .NET Framework.
  • Ujistěte se, že soubor web.config neodkazuje na žádná nepoužívané sestavení v elementu kompilace.
  • Akce sestavení každého souboru .cshtml je nastavena na Obsah. Toto nastavení zajistí správné zobrazení souborů v balíčku a umožní zobrazení jiných odkazovaných souborů v balíčku.

Sestavení cílí na nesprávnou platformu.

Azure je 64bitové prostředí. Sestavení .NET kompilovaná pro 32bitový cíl proto nejsou kompatibilní s Azure.

Role při inicializaci nebo zastavení vyvolává neošetřené výjimky.

Všechny výjimky vyvolané metodami RoleEntryPoint třídy, která zahrnuje OnStart, OnStop a Run metody, jsou neošetřené výjimky. Pokud v některé z těchto metod dojde k neošetřené výjimce, role se recykluje. Pokud se role recykluje opakovaně, může při každém pokusu o spuštění vyvolat neošetřenou výjimku.

Metoda Run vrací roli

Metoda Run je určena ke spuštění neomezeně dlouho. Pokud váš kód přepíše metodu Run , měla by být trvale v režimu spánku. Pokud metoda Run vrátí, role se recykluje.

Nesprávné nastavení DiagnosticsConnectionString

Pokud aplikace používá Azure Diagnostics, musí konfigurační soubor služby zadat DiagnosticsConnectionString nastavení konfigurace. Toto nastavení by mělo určovat připojení HTTPS k vašemu účtu úložiště v Azure.

Pokud chcete zajistit správnost nastavení DiagnosticsConnectionString před nasazením balíčku aplikace do Azure, ověřte, že platí následující příkazy:

  • Nastavení DiagnosticsConnectionString odkazuje na platný účet úložiště v Azure.
    Ve výchozím nastavení odkazuje toto nastavení na emulovaný účet úložiště, takže toto nastavení musíte explicitně změnit před nasazením balíčku aplikace. Pokud toto nastavení nezměníte, vyvolá se výjimka, když se instance role pokusí spustit monitorování diagnostiky. Tato událost může způsobit, že instance role bude trvale recyklována.
  • Připojovací řetězec je zadán v následujícím formátu. (Protokol musí být zadán jako HTTPS.) Nahraďte MyAccountName názvem vašeho účtu úložiště a MyAccountKey přístupovým klíčem:
DefaultEndpointsProtocol=https;AccountName=MyAccountName;AccountKey=MyAccountKey

Pokud vyvíjíte aplikaci pomocí nástrojů Azure Tools for Microsoft Visual Studio, můžete k nastavení této hodnoty použít stránky vlastností.

Exportovaný certifikát neobsahuje privátní klíč.

Pokud chcete spustit webovou roli v protokolu TLS (Transport Layer Security), musíte zajistit, aby exportovaný certifikát pro správu obsahoval privátní klíč. Pokud k exportu certifikátu použijete Správce certifikátů systému Windows, nezapomeňte u možnosti Exportovat privátní klíč vybrat ano. Certifikát musí být exportován ve formátu .pfx, což je jediný formát, který je aktuálně podporovaný.

Další kroky

Podívejte se na další články o řešení potíží pro cloudové služby.

Zobrazit další scénáře recyklace rolí na blogu Kevin Williamson.