Typowe problemy, które powodują odtwarzanie ról usługi Azure Cloud Service (klasycznej)
Ważne
Usługi Cloud Services (wersja klasyczna) są teraz przestarzałe dla wszystkich klientów od 1 września 2024 r. Wszystkie istniejące uruchomione wdrożenia zostaną zatrzymane i zamknięte przez firmę Microsoft, a dane zostaną trwale utracone od października 2024 r. Nowe wdrożenia powinny używać nowego modelu wdrażania opartego na usłudze Azure Resource Manager w usługach Azure Cloud Services (wsparcie dodatkowe).
W tym artykule omówiono niektóre typowe przyczyny problemów z wdrażaniem i przedstawiono wskazówki dotyczące rozwiązywania problemów, które pomogą Ci rozwiązać te problemy. Wskazanie, że występuje problem z aplikacją, polega na tym, że nie można uruchomić wystąpienia roli lub przechodzi między stanami inicjowania, zajętości i zatrzymywania.
Jeśli problem z platformą Azure nie został rozwiązany w tym artykule, odwiedź fora platformy Azure w witrynach Microsoft Q & A i Stack Overflow. Możesz opublikować swój problem na tych forach lub opublikować go na @AzureSupport na Twitterze. Możesz również przesłać żądanie pomoc techniczna platformy Azure. Aby przesłać wniosek o pomoc techniczną, na stronie pomoc techniczna platformy Azure wybierz pozycję Uzyskaj pomoc techniczną.
Brak zależności środowiska uruchomieniowego
Jeśli rola w aplikacji opiera się na jakimkolwiek zestawie, który nie jest częścią programu .NET Framework lub biblioteki zarządzanej platformy Azure, musisz jawnie dołączyć ten zestaw do pakietu aplikacji. Pamiętaj, że inne struktury firmy Microsoft nie są domyślnie dostępne na platformie Azure. Jeśli Twoja rola opiera się na takiej strukturze, należy dodać te zestawy do pakietu aplikacji.
Przed skompilowanie i spakowanie aplikacji sprawdź, czy następujące instrukcje są prawdziwe:
- W przypadku korzystania z programu Visual Studio upewnij się, że właściwość Copy Local (Kopiuj lokalnie ) ma wartość True dla każdego zestawu, do którego odwołuje się dany zestaw w projekcie, który nie jest częścią zestawu Azure SDK ani programu .NET Framework.
- Upewnij się, że plik web.config nie odwołuje się do żadnych nieużywanych zestawów w elemencie kompilacji.
- Akcja kompilacji każdego pliku cshtml jest ustawiona na Zawartość. To ustawienie zapewnia, że pliki są wyświetlane poprawnie w pakiecie i umożliwiają wyświetlenie w pakiecie innych plików, do których się odwołujesz.
Zestaw jest przeznaczony dla niewłaściwej platformy.
Platforma Azure to środowisko 64-bitowe. W związku z tym zestawy platformy .NET skompilowane dla obiektu docelowego 32-bitowego nie są zgodne z platformą Azure.
Rola zgłasza nieobsługiwane wyjątki podczas inicjowania lub zatrzymywania
Wszelkie wyjątki zgłaszane przez metody klasy RoleEntryPoint , która obejmuje metody OnStart, OnStop i Run , są nieobsługiwane wyjątki. Jeśli w jednej z tych metod wystąpi nieobsługiwany wyjątek, odtwarzanie roli. Jeśli rola jest powtarzana wielokrotnie, może zgłaszać nieobsługiwany wyjątek za każdym razem, gdy próbuje się uruchomić.
Rola jest zwracana przez metodę Run
Metoda Run jest przeznaczona do uruchamiania w nieskończoność. Jeśli kod zastąpi metodę Run , powinien zostać uśpiony przez czas nieokreślony. Jeśli metoda Run zwróci, odtwarzanie roli.
Nieprawidłowe ustawienie DiagnosticsConnectionString
Jeśli aplikacja używa Diagnostyka Azure, plik konfiguracji usługi musi określić DiagnosticsConnectionString
ustawienie konfiguracji. To ustawienie powinno określać połączenie HTTPS z kontem magazynu na platformie Azure.
Aby upewnić się, że DiagnosticsConnectionString
ustawienie jest poprawne przed wdrożeniem pakietu aplikacji na platformie Azure, sprawdź, czy następujące instrukcje są prawdziwe:
- Ustawienie
DiagnosticsConnectionString
wskazuje prawidłowe konto magazynu na platformie Azure.
Domyślnie to ustawienie wskazuje na emulowane konto magazynu, dlatego przed wdrożeniem pakietu aplikacji należy jawnie zmienić to ustawienie. Jeśli to ustawienie nie zostanie zmienione, zostanie zgłoszony wyjątek, gdy wystąpienie roli podejmie próbę uruchomienia monitora diagnostycznego. To zdarzenie może spowodować odtwarzanie wystąpienia roli na czas nieokreślony. - Parametry połączenia jest określony w następującym formacie. (Protokół musi być określony jako HTTPS). Zastąp ciąg MyAccountName nazwą konta magazynu i ciągiem MyAccountKey swoim kluczem dostępu:
DefaultEndpointsProtocol=https;AccountName=MyAccountName;AccountKey=MyAccountKey
Jeśli tworzysz aplikację przy użyciu narzędzi platformy Azure dla programu Microsoft Visual Studio, możesz użyć stron właściwości, aby ustawić tę wartość.
Wyeksportowany certyfikat nie zawiera klucza prywatnego
Aby uruchomić rolę internetową w obszarze Transport Layer Security (TLS), musisz upewnić się, że wyeksportowany certyfikat zarządzania zawiera klucz prywatny. Jeśli używasz Menedżera certyfikatów systemu Windows do wyeksportowania certyfikatu, pamiętaj, aby wybrać opcję Tak dla opcji Eksportuj klucz prywatny. Certyfikat należy wyeksportować w formacie pfx, który jest jedynym obsługiwanym obecnie formatem.
Następne kroki
Zobacz więcej artykułów dotyczących rozwiązywania problemów dotyczących usług w chmurze.
Zobacz więcej scenariuszy recyklingu ról w serii blogów Kevina Williamsona.