Udostępnij przez


Rozwiązywanie problemów z włączaniem debugera migawek usługi Application Insights lub wyświetlania migawek

Jeśli włączono debuger migawek usługi Application Insights dla aplikacji, ale nie widzisz migawek dla wyjątków, możesz użyć tych instrukcji, aby rozwiązać problemy.

Generowanie migawki kończy się niepowodzeniem z wielu różnych powodów. Możesz rozpocząć od uruchomienia testu zdrowia migawki, aby zidentyfikować niektóre z najbardziej typowych przyczyn.

Nieobsługiwane scenariusze

Scenariusze, w których moduł zbierający migawki nie jest obsługiwany:

Scenariusz Efekty uboczne Zalecenie
W przypadku korzystania z SDK Snapshot Collector bezpośrednio w aplikacji (.csproj) i włączono zaawansowaną opcję Interop. Lokalny zestaw SDK usługi Application Insights (w tym dane telemetryczne modułu zbierającego migawki) został utracony, w związku z tym żadne migawki nie są dostępne.
Aplikacja może ulec awarii podczas uruchamiania za pomocą polecenia System.ArgumentException: telemetryProcessorTypedoes not implement ITelemetryProcessor.
Aby uzyskać więcej informacji na temat funkcji międzyoperacyjności usługi Application Insights, zobacz dokumentację.
Jeśli używasz opcji zaawansowanej Interop, użyj iniekcji modułu zbierającego migawki bez kodu, włączonej przez portal Azure.

Upewnij się, że używasz odpowiedniego punktu końcowego debuggera migawek

Obecnie jedynymi regionami wymagającymi modyfikacji punktu końcowego są platforma Azure Government i platforma Microsoft Azure obsługiwana przez firmę 21Vianet.

W przypadku usługi App Service i aplikacji korzystających z zestawu SDK usługi Application Insights należy zaktualizować parametry połączenia przy użyciu obsługiwanych przesłonięć dla debugera migawek:

Właściwość Ciągu Połączenia Chmura rządowa USA Chmura w Chinach
SnapshotEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

Aby uzyskać więcej informacji na temat innych przesłonięć połączeń, zobacz dokumentację usługi Application Insights.

W przypadku aplikacji funkcjonalnej należy zaktualizować host.json za pomocą obsługiwanych przesłonięć:

Własność Chmura rządowa USA Chmura w Chinach
Punkt końcowy agenta https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

Przykład host.json zaktualizowany przy użyciu punktu końcowego agenta chmury dla instytucji rządowych USA:

{
    "version": "2.0",
    "logging": {
        "applicationInsights": {
            "samplingExcludedTypes": "Request",
            "samplingSettings": {
                "isEnabled": true
            },
            "snapshotConfiguration": {
                "isEnabled": true,
                "agentEndpoint": "https://snapshot.monitor.azure.us"
            }
        }
    }
}

Korzystanie z kontroli kondycji migawki

Kilka typowych problemów powoduje, że przycisk Otwórz migawkę debugowania nie jest wyświetlany. Na przykład:

  • Używanie nieaktualnego modułu zbierającego migawki
  • Osiągnięcie dziennego limitu przesyłania
  • Przekazywanie migawki po prostu trwa długo.

Uzyskaj dostęp do kontroli kondycji migawki, aby rozwiązać typowe problemy za pośrednictwem linku w okienku Wyjątki w widoku śledzenia kompleksowego.

Zrzut ekranu przedstawiający sposób wprowadzania kontroli kondycji migawki.

Interaktywny interfejs przypominający czat szuka typowych problemów i przeprowadzi Cię do ich rozwiązania.

Zrzut ekranu przedstawiający interaktywne okno sprawdzania kondycji z listą problemów i sugestii dotyczących ich rozwiązywania.

Jeśli to nie rozwiąże problemu, zapoznaj się z poniższymi ręcznymi krokami rozwiązywania problemów.

Sprawdzanie ustawień klienta PROTOKOŁU TLS/SSL (ASP.NET)

Jeśli masz aplikację ASP.NET hostowaną w usłudze aplikacja systemu Azure lub w usługach IIS na maszynie wirtualnej, aplikacja może nie nawiązać połączenia z usługą Snapshot Debugger z powodu braku protokołu SSL.

Punkt końcowy debugera migawek wymaga protokołu TLS w wersji 1.2. Zestaw protokołów zabezpieczeń SSL jest jednym z dziwactw włączanych przez wartość httpRuntime targetFramework w sekcji system.webweb.config.

Jeśli parametr httpRuntime targetFramework ma wartość 4.5.2 lub niższą, protokół TLS 1.2 nie jest domyślnie dołączany.

Uwaga

Wartość jest niezależna httpRuntime targetFramework od platformy docelowej używanej podczas kompilowania aplikacji.

Aby sprawdzić ustawienie, otwórz plik web.config i znajdź sekcję system.web. Upewnij się, że ustawienie targetFramework, związane z httpRuntime, wynosi 4.6 lub więcej.

<system.web>
    ...
    <httpRuntime targetFramework="4.7.2" />
    ...
</system.web>

Uwaga

Modyfikowanie wartości httpRuntime targetFramework zmienia cechy środowiska uruchomieniowego zastosowane do aplikacji i może spowodować inne, subtelne zmiany zachowania. Pamiętaj, aby dokładnie przetestować aplikację po wprowadzeniu tej zmiany. Aby uzyskać pełną listę zmian zgodności, zobacz Zmiany dotyczące ponownego określania wartości docelowej.

Uwaga

Jeśli parametr targetFramework ma wartość 4.7 lub nowszą, system Windows określa dostępne protokoły. W usłudze aplikacja systemu Azure dostępny jest protokół TLS 1.2. Jeśli jednak używasz własnej maszyny wirtualnej, może być konieczne włączenie protokołu TLS 1.2 w systemie operacyjnym.

Scenariusze związane z obciążeniem debugera migawek

Debugger migawkowy jest przeznaczony do użytku w środowiskach produkcyjnych. Ustawienia domyślne obejmują limity szybkości, aby zminimalizować wpływ na aplikacje.

Może jednak wystąpić niewielkie obciążenie związane z procesorem, pamięcią i we/wy związanym z debuggerem migawek, podobnie jak w następujących scenariuszach.

Gdy w aplikacji zostanie rzucony wyjątek:

  • Utworzenie podpisu dla typu problemu i podjęcie decyzji o tym, czy utworzyć migawkę, dodaje niewielkie obciążenie procesora i pamięci.

  • Jeśli funkcja deoptymalizacji jest włączona, istnieje obciążenie związane z ponowną kompilacją metodą JIT, która wyrzuciła wyjątek. Jest to naliczane przy następnym wykonaniu tej metody. W zależności od rozmiaru metody może to być od 1 ms do 100 ms czasu procesora.

Jeśli program obsługi wyjątków zdecyduje się utworzyć migawkę:

  • Tworzenie migawki procesu trwa około pół sekundy (P50 = 0,3 s, P90 = 1,2 s, P95 = 1,9 s) w tym czasie, wątek, który rzucił wyjątek, jest wstrzymany. Inne wątki nie są blokowane.

  • Konwertowanie migawki procesu na minidump i przekazywanie jej do usługi Application Insights trwa kilka minut.

    • Konwertuj: P50 = 63 s, P90 = 187 s, P95 = 275 s.
    • Przekazywanie: P50 = 31 s, P90 = 75 s, P95 = 98 s.

    Odbywa się to w programie Snapshot Uploader, który działa w osobnym procesie. Proces przekazywania migawek działa poniżej normalnego priorytetu procesora i używa operacji wejścia/wyjścia o niskim priorytecie.

    Minidump jest najpierw zapisywany na dysku, a ilość miejsca na dysku jest mniej więcej taka sama jak zestaw roboczy oryginalnego procesu. Zapisanie minidump może wywołać błędy strony podczas odczytywania pamięci.

    Minidump jest kompresowany podczas wysyłania, co zużywa zarówno procesor, jak i pamięć w procesie Snapshot Uploader. Obciążenie procesora CPU, pamięci i dysku jest proporcjonalne do rozmiaru migawki procesu. Narzędzie do przesyłania migawek przetwarza migawki szeregowo.

Gdy TrackException jest wywoływane:

Debuger migawek sprawdza, czy wyjątek jest nowy, czy utworzono dla niego migawkę. Spowoduje to niewielkie obciążenie CPU.

Wersje zapoznawcze .NET Core

Jeśli używasz wersji zapoznawczej platformy .NET Core lub aplikacja odwołuje się do zestawu Application Insights, bezpośrednio lub pośrednio za pośrednictwem zestawu zależnego, postępuj zgodnie z instrukcjami dotyczącymi włączania debugera migawek dla innych środowisk.

Sprawdź stan rozszerzenia serwisu diagnostycznego

Jeśli Snapshot Debugger został włączony za pośrednictwem okienka usługi Application Insights w portalu, został on włączony przez rozszerzenie witryny usług diagnostycznych.

Uwaga

Bez kodu instalacja debugera migawek usługi Application Insights jest zgodna z zasadami obsługi platformy .NET Core. Aby uzyskać więcej informacji na temat obsługiwanych środowisk uruchomieniowych, zobacz Zasady pomocy technicznej platformy .NET Core.

Stronę stanu tego rozszerzenia możesz sprawdzić, przechodząc do następującego adresu URL: https://{site-name}.scm.azurewebsites.net/DiagnosticServices

Uwaga

Domena linku do strony statusu będzie się różnić w zależności od chmury.

Ta domena jest taka sama jak witryna zarządzająca Kudu dla usługi App Service. Na stronie stanu przedstawiono stan instalacji agentów .NET Profiler i modułu Snapshot Collector. Jeśli wystąpił nieoczekiwany błąd, pokazuje, jak go naprawić.

Aby uzyskać podstawowy adres URL tej strony stanu, możesz użyć witryny zarządzania Kudu dla usługi App Service:

  1. Otwórz aplikację usługi App Service w witrynie Azure Portal.
  2. Wybierz Narzędzia zaawansowane lub wyszukaj Kudu.
  3. Wybierz Przejdź.
  4. Po przejściu do witryny zarządzania Kudu, w adresie URL dołącz następujące /DiagnosticServices i naciśnij klawisz Enter. Kończy się następująco: https://<kudu-url>/DiagnosticServices

Uaktualnianie do najnowszej wersji pakietu NuGet

Na podstawie sposobu włączania debugera migawek zobacz następujące opcje:

Aby uzyskać najnowsze aktualizacje i poprawki błędów, zapoznaj się z informacjami o wersji.

Sprawdź dzienniki uploadera

Po utworzeniu migawki na dysku jest tworzony plik minidump (.dmp). Oddzielny proces przesyłania tworzy ten plik minidump i przekazuje go wraz ze skojarzonymi plikami PDB do magazynu debugera migawek usługi Application Insights. Po pomyślnym przekazaniu minidumpa, został on usunięty z dysku. Pliki dziennika dla procesu przesyłania są przechowywane na dysku. W środowisku usługi App Service można znaleźć te dzienniki w pliku D:\Home\LogFiles. Skorzystaj z witryny Kudu do zarządzania usługą App Service, aby odnaleźć te pliki dziennika.

  1. Otwórz aplikację usługi App Service w witrynie Azure Portal.
  2. Wybierz Narzędzia zaawansowane lub wyszukaj Kudu.
  3. Wybierz Przejdź.
  4. Z listy rozwijanej Konsola debugowania wybierz pozycję CMD.
  5. Wybierz pozycję LogFiles.

Powinien zostać wyświetlony co najmniej jeden plik o nazwie rozpoczynającej się od Uploader_ lub SnapshotUploader_ i .log rozszerzeniu. Wybierz odpowiednią ikonę, aby pobrać wszystkie pliki dziennika lub otworzyć je w przeglądarce. Nazwa pliku zawiera unikatowy sufiks identyfikujący wystąpienie usługi App Service. Jeśli wystąpienie usługi App Service jest hostowane na więcej niż jednej maszynie, istnieją oddzielne pliki dziennika dla każdej maszyny. Gdy uploader wykryje nowy plik minidump, jest rejestrowany w pliku dziennika. Oto przykład udanego zrzutu ekranu i przesłania.

SnapshotUploader.exe Information: 0 : Received Fork request ID <request-ID> from process <ID> (Low pri)
    DateTime=2018-03-09T01:42:41.8571711Z
SnapshotUploader.exe Information: 0 : Creating minidump from Fork request ID <request-ID> from process 6368 (Low pri)
    DateTime=2018-03-09T01:42:41.8571711Z
SnapshotUploader.exe Information: 0 : Dump placeholder file created: <request-ID>.dm_
    DateTime=2018-03-09T01:42:41.8728496Z
SnapshotUploader.exe Information: 0 : Dump available <request-ID>.dmp
    DateTime=2018-03-09T01:42:45.7525022Z
SnapshotUploader.exe Information: 0 : Successfully wrote minidump to D:\local\Temp\Dumps\<connection-string>\<request-ID>.dmp
    DateTime=2018-03-09T01:42:45.7681360Z
SnapshotUploader.exe Information: 0 : Uploading D:\local\Temp\Dumps\<connection-string>\<request-ID>.dmp, 214.42 MB (uncompressed)
    DateTime=2018-03-09T01:42:45.7681360Z
SnapshotUploader.exe Information: 0 : Upload successful. Compressed size 86.56 MB
    DateTime=2018-03-09T01:42:59.6184651Z
SnapshotUploader.exe Information: 0 : Extracting PDB info from D:\local\Temp\Dumps\<connection-string>\<request-ID>.dmp.
    DateTime=2018-03-09T01:42:59.6184651Z
SnapshotUploader.exe Information: 0 : Matched 2 PDB(s) with local files.
    DateTime=2018-03-09T01:42:59.6809606Z
SnapshotUploader.exe Information: 0 : Stamp does not want any of our matched PDBs.
    DateTime=2018-03-09T01:42:59.8059929Z
SnapshotUploader.exe Information: 0 : Deleted D:\local\Temp\Dumps\<connection-string>\<request-ID>.dmp
    DateTime=2018-03-09T01:42:59.8530649Z

Uwaga

Poprzedni przykład pochodzi z wersji 1.2.0 Microsoft.ApplicationInsights.SnapshotCollector pakietu NuGet. We wcześniejszych wersjach proces przesyłania jest wywoływany MinidumpUploader.exe, a log jest mniej szczegółowy.

W poprzednim przykładzie parametry połączenia powinny być zgodne z parametrami połączenia dla aplikacji. Minidump jest skojarzony z migawką z identyfikatorem żądania. Tego identyfikatora można później użyć do zlokalizowania skojarzonego rekordu wyjątku w usłudze Application Insights Analytics.

Aplikacja uploader skanuje nowe pliki PDB co około 15 minut. Oto przykład:

SnapshotUploader.exe Information: 0 : PDB rescan requested.
    DateTime=2018-03-09T01:47:19.4457768Z
SnapshotUploader.exe Information: 0 : Scanning D:\home\site\wwwroot for local PDBs.
    DateTime=2018-03-09T01:47:19.4457768Z
SnapshotUploader.exe Information: 0 : Local PDB scan complete. Found 2 PDB(s).
    DateTime=2018-03-09T01:47:19.4614027Z
SnapshotUploader.exe Information: 0 : Deleted PDB scan marker : D:\local\Temp\Dumps\<connection-string>\<process-ID>.pdbscan
    DateTime=2018-03-09T01:47:19.4614027Z

W przypadku aplikacji, które nie są hostowane w usłudze App Service, dzienniki przesyłania znajdują się w tym samym folderze co minizrzuty pamięci: %TEMP%\Dumps\<string> (gdzie <string> to łańcuch połączenia).

Rozwiązywanie problemów z usługami Cloud Services

W usługach Cloud Services domyślny folder tymczasowy może być za mały, aby przechowywać pliki minidump, co prowadzi do utraty migawek. Potrzebne miejsce na dysku zależy od całkowitego zbioru roboczego aplikacji i liczby jednoczesnych migawek.

Rozmiar roboczy 32-bitowej roli ASP.NET w sieci Web mieści się zazwyczaj w przedziale od 200 MB do 500 MB. Zezwalaj na co najmniej dwie współbieżne migawki. Jeśli na przykład aplikacja używa 1 GB całkowitego zestawu roboczego, upewnij się, że do przechowywania migawek jest co najmniej 2 GB miejsca na dysku.

Skonfiguruj rolę usługi w chmurze przy użyciu dedykowanego zasobu lokalnego dla migawek:

  1. Dodaj nowy zasób lokalny do usługi w chmurze, edytując plik definicji usługi w chmurze (csdef). W poniższym przykładzie zdefiniowano zasób o rozmiarze SnapshotStore 5 GB.

    <LocalResources>
        <LocalStorage name="SnapshotStore" cleanOnRoleRecycle="false" sizeInMB="5120" />
    </LocalResources>
    
  2. Zmodyfikuj kod uruchamiania roli, aby dodać zmienną środowiskową, która wskazuje na SnapshotStore zasób lokalny. W przypadku ról procesu roboczego kod powinien zostać dodany do metody roli OnStart :

    public override bool OnStart()
    {
        Environment.SetEnvironmentVariable("SNAPSHOTSTORE", RoleEnvironment.GetLocalResource("SnapshotStore").RootPath);
        return base.OnStart();
    }
    

    W przypadku ról sieci Web (ASP.NET) kod powinien zostać dodany do metody aplikacji Application_Start internetowej:

    using Microsoft.WindowsAzure.ServiceRuntime;
    using System;
    namespace MyWebRoleApp
    {
        public class MyMvcApplication : System.Web.HttpApplication
        {
            protected void Application_Start()
            {
                Environment.SetEnvironmentVariable("SNAPSHOTSTORE", RoleEnvironment.GetLocalResource("SnapshotStore").RootPath);
                // TODO: The rest of your application startup code
            }
        }
    }
    
  3. Zaktualizuj plik ApplicationInsights.config dla swojej roli, aby zastąpić lokalizację tymczasowego folderu używaną przez SnapshotCollector.

    <TelemetryProcessors>
        <Add Type="Microsoft.ApplicationInsights.SnapshotCollector.SnapshotCollectorTelemetryProcessor, Microsoft.ApplicationInsights.SnapshotCollector">
            <!-- Use the SnapshotStore local resource for snapshots -->
            <TempFolder>%SNAPSHOTSTORE%</TempFolder>
            <!-- Other SnapshotCollector configuration options -->
        </Add>
    </TelemetryProcessors>
    

Zastępowanie katalogu Kopii w tle

Po uruchomieniu modułu zbierającego migawki próbuje znaleźć folder na dysku, który jest odpowiedni do uruchomienia procesu przekazywania migawek. Wybrany folder jest znany jako folder kopiowania w tle.

Moduł zbierający migawki sprawdza kilka dobrze znanych lokalizacji, upewniając się, że ma uprawnienia do skopiowania plików binarnych aplikacji do przesyłania migawek. Używane są następujące zmienne środowiskowe:

  • Fabric_Folder_App_Temp
  • LOCALAPPDATA
  • APPDATA
  • TEMP

Jeśli nie można odnaleźć odpowiedniego folderu, Moduł zbierający migawki zgłasza błąd: "Nie można odnaleźć odpowiedniego folderu kopii cieniowej".

moduł zbierający migawki zgłosi błąd.

Jeśli nie można uruchomić uploadera, Kolektor migawkowy zgłasza UploaderCannotStartFromShadowCopy błąd. Treść wiadomości często zawiera element lub wartość System.UnauthorizedAccessException. Ten błąd zwykle występuje, ponieważ aplikacja działa na koncie z ograniczonymi uprawnieniami. Konto ma uprawnienia do zapisu w folderze kopii w tle, ale nie ma uprawnień do uruchamiania kodu.

Ponieważ te błędy zwykle występują podczas uruchamiania, często następuje ExceptionDuringConnect błąd informujący, że nie można uruchomić modułu przekazującego.

Aby obejść te błędy, możesz ręcznie określić folder kopiowania w tle za pomocą ShadowCopyFolder opcji konfiguracji. Na przykład przy użyciu ApplicationInsights.config:

<TelemetryProcessors>
    <Add Type="Microsoft.ApplicationInsights.SnapshotCollector.SnapshotCollectorTelemetryProcessor, Microsoft.ApplicationInsights.SnapshotCollector">
        <!-- Override the default shadow copy folder. -->
        <ShadowCopyFolder>D:\SnapshotUploader</ShadowCopyFolder>
        <!-- Other SnapshotCollector configuration options -->
    </Add>
</TelemetryProcessors>

Albo jeśli używasz appsettings.json z aplikacją platformy .NET Core:

{
    "ApplicationInsights": {
        "ConnectionString": "<your connection string>"
    },
    "SnapshotCollectorConfiguration": {
        "ShadowCopyFolder": "D:\\SnapshotUploader"
    }
}

Użyj wyszukiwania usługi Application Insights, aby znaleźć wyjątki z migawkami

Po utworzeniu migawki zgłaszany wyjątek jest oznaczony identyfikatorem migawki. Ten identyfikator migawki jest dołączany jako właściwość niestandardowa, gdy wyjątek jest zgłaszany do usługi Application Insights. Za pomocą funkcji Wyszukiwania w usłudze Application Insights można znaleźć wszystkie rekordy z właściwością niestandardową ai.snapshot.id .

  1. Przejdź do zasobu usługi Application Insights w witrynie Azure Portal.
  2. Wybierz Wyszukaj.
  3. Wpisz ai.snapshot.id w polu tekstowym Wyszukaj i naciśnij Enter.

Zrzut ekranu przedstawiający wyszukiwanie danych telemetrycznych z identyfikatorem migawki w portalu.

Jeśli to wyszukiwanie nie zwraca wyników, żadne migawki nie zostały zgłoszone do usługi Application Insights w wybranym przedziale czasowym.

Aby wyszukać określony identyfikator migawki z dzienników modułu przekazującego, wpisz ten identyfikator w polu Wyszukaj. Jeśli nie możesz znaleźć rekordów dla migawki, którą wiesz, że została przesłana, wykonaj następujące kroki:

  1. Sprawdź dokładnie, czy szukasz odpowiedniego zasobu usługi Application Insights, sprawdzając parametry połączenia.

  2. Używając znacznika czasu z dziennika przesyłania, dostosuj filtr zakresu czasu w wyszukiwarce, aby uwzględnić ten zakres czasu.

Jeśli nadal nie widzisz wyjątku z tym identyfikatorem migawki, rekord wyjątku nie został zgłoszony do usługi Application Insights. Taka sytuacja może wystąpić, jeśli aplikacja uległa awarii po wykonaniu migawki przez aplikację, ale przed zgłoszeniem rekordu wyjątku. W takim przypadku sprawdź dzienniki usługi App Service w obszarze Diagnose and solve problems , aby sprawdzić, czy wystąpiły nieoczekiwane ponowne uruchomienia lub nieobsługiwane wyjątki.

Edytowanie reguł serwera proxy sieci lub zapory

Jeśli aplikacja łączy się z Internetem za pośrednictwem serwera proxy lub zapory, może być konieczne zaktualizowanie reguł w celu komunikowania się z usługą Snapshot Debugger.

Adresy IP używane przez debuger migawek usługi Application Insights znajdują się w tagu usługi Azure Monitor. Aby uzyskać więcej informacji, zobacz dokumentację dotyczącą tagów usługi.

Czy podczas korzystania z migawek są naliczane jakieś koszty rozliczeń?

Nie ma opłat związanych z korzystaniem z usługi Snapshot Debugger w ramach Twojej subskrypcji. Zebrane pliki migawek są przechowywane oddzielnie od danych telemetrycznych zebranych przez zestawy SDK usługi Application Insights i za pozyskiwanie oraz przechowywanie migawek nie są naliczane opłaty.

Rozwiązywanie problemów związanych z "przynieś własne miejsce do przechowywania" (BYOS)

Rozwiązywanie typowych problemów z konfigurowaniem rozwiązania BYOS.

Scenariusz: Template schema '{schema_uri}' isn't supported

Wystąpił błąd podobny do następującego przykładu:

New-AzResourceGroupDeployment : 11:53:49 AM - Error: Code=InvalidTemplate; Message=Deployment template validation failed: 'Template schema
'https://schema.management.azure.com/schemas/2020-01-01/deploymentTemplate.json#' is not supported. Supported versions are
'2014-04-01-preview,2015-01-01,2018-05-01,2019-04-01,2019-08-01'. Please see https://aka.ms/arm-template for usage details.'.

Rozwiązania

  • Upewnij się, że $schema właściwość szablonu jest prawidłowa. Musi ona być zgodna z tym wzorcem:

    https://schema.management.azure.com/schemas/{schema_version}/deploymentTemplate.json#
    
  • Upewnij się, że szablon schema_version znajduje się w prawidłowych wartościach: 2014-04-01-preview, 2015-01-01, 2018-05-01, 2019-04-01, 2019-08-01.

Scenariusz: No registered resource provider found for location '{location}'

Wystąpił błąd podobny do następującego przykładu:

New-AzResourceGroupDeployment : 6:18:03 PM - Resource microsoft.insights/components 'byos-test-westus2-ai' failed with message '{
  "error": {
    "code": "NoRegisteredProviderFound",
    "message": "No registered resource provider found for location 'westus2' and API version '2020-03-01-preview' for type 'components'. The supported api-versions are '2014-04-01,
2014-08-01, 2014-12-01-preview, 2015-05-01, 2018-05-01-preview'. The supported locations are ', eastus, southcentralus, northeurope, westeurope, southeastasia, westus2, uksouth,
canadacentral, centralindia, japaneast, australiaeast, koreacentral, francecentral, centralus, eastus2, eastasia, westus, southafricanorth, northcentralus, brazilsouth, switzerlandnorth,
australiasoutheast'."
  }
}'

Rozwiązania

  • Upewnij się, że apiVersion zasobu microsoft.insights/components to 2015-05-01.
  • Upewnij się, że apiVersion zasobu linkedStorageAccount to 2020-03-01-preview.

Scenariusz: Storage account location should match Application Insights component location

Wystąpił błąd podobny do następującego przykładu:

New-AzResourceGroupDeployment : 1:01:12 PM - Resource microsoft.insights/components/linkedStorageAccounts 'byos-test-centralus-ai/serviceprofiler' failed with message '{
  "error": {
    "code": "BadRequest",
    "message": "Storage account location should match AI component location",
    "innererror": {
      "trace": [
        "System.ArgumentException"
      ]
    }
  }
}'

Rozwiązanie

Upewnij się, że lokalizacja zasobu Application Insights jest taka sama jak konto magazynowe.