Включение отладчика моментальных снимков для приложений .NET в Службе приложений Azure

Snapshot Debugger в настоящее время поддерживает приложения ASP.NET и ASP.NET Core, которые работают в службе приложений Azure в планах службы Windows.

При использовании Snapshot Debugger рекомендуется запускать приложение на уровне служб "Базовый" или выше.

Для большинства приложений на уровнях бесплатных и общих служб не хватает памяти или дискового пространства для сохранения снимков.

Включение Snapshot Debugger

Snapshot Debugger предустановлен как часть среды выполнения служб приложений, но вам необходимо включить его, чтобы получать снимки для своего приложения службы приложений. Чтобы включить Snapshot Debugger для приложения, следуйте приведенным ниже инструкциям.

Примечание

Если вы используете предварительную версию .NET Core или ваше приложение прямо или косвенно ссылается на SDK Application Insights через зависимую сборку, выполните инструкции из статьи Включить отладчик моментальных снимков для других сред, чтобы добавить пакет NuGet Microsoft.ApplicationInsights.SnapshotCollector с приложением.

Примечание

Установка отладчика моментальных снимков Application Insights без кода выполняется в соответствии с политикой поддержки .NET Core. Дополнительные сведения о поддерживаемых средах выполнения см. в статье о политике поддержки .NET Core.

Завершив развертывание приложения .NET, выполните следующее.

  1. Перейдите на панель управления Azure для Службы приложений.

  2. Перейдите на страницу Параметры>Application Insights.

    Снимок экрана: включение Application Insights на портале служб приложений.

  3. Либо следуйте инструкциям на странице, чтобы создать новый ресурс, либо выберите существующий ресурс App Insights для мониторинга вашего приложения.

  4. Переведите переключатель Snapshot Debugger в положение Вкл.

    Снимок экрана: добавление расширения сайта App Insights.

  5. Snapshot Debugger теперь включается с помощью настройки приложения служб приложений.

    Снимок экрана: параметр приложения для Snapshot Debugger.

Если вы используете другой тип службы Azure, ниже приведены инструкции по включению отладчика моментальных снимков на других поддерживаемых платформах:

Включение Snapshot Debugger для других облаков

В настоящее время единственными регионами, в которых требуется модификация конечных точек, являются Azure для государственных организаций и Azure для Китая с помощью строки подключения Application Insights.

Свойство строки подключения Облако для государственных организаций США Облако для Китая
SnapshotEndpoint https://snapshot.monitor.azure.us https://snapshot.monitor.azure.cn

Дополнительные сведения о других переопределениях подключения см. в Документации по Application Insights.

Включение проверки подлинности Azure Active Directory для приема моментальных снимков

Application Insights Snapshot Debugger поддерживает проверку подлинности Azure AD для приема моментальных снимков. Это означает, что для приема всех моментальных снимков приложения необходимо пройти проверку подлинности и предоставить агенту Snapshot Debugger необходимые параметры приложения.

На сегодня Snapshot Debugger поддерживает проверку подлинности Azure AD, только если вы ссылаетесь на Azure AD и настраиваете его с помощью пакета SDK для Application Insights в приложении.

Чтобы включить прием моментальных снимков в Azure AD, выполните приведенные далее действия.

  1. Создайте и добавьте управляемое удостоверение, которое будет использоваться для проверки подлинности ресурса Application Insights в Службе приложений.

    1. Сведения об управляемом удостоверении, назначаемом системой, см. в этой документации.

    2. Сведения об управляемом удостоверении, назначаемом пользователем, см. в этой документации.

  2. Настройте и включите Azure AD в ресурсе Application Insights. Дополнительные сведения см. в этой документации.

  3. Добавьте следующий параметр приложения, который позволяет агенту Snapshot Debugger указать, какое управляемое удостоверение использовать:

Для назначаемого системой удостоверения:

Параметр приложения Значение
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AD

Для назначаемого пользователем удостоверения:

Параметр приложения Значение
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AAD;ClientId={Идентификатор клиента для удостоверения, назначаемого пользователем}

Выключение Snapshot Debugger

Чтобы отключить Snapshot Debugger, повторите процедуру включения, но в этот раз переведите переключатель Snapshot Debugger в положение Выкл.

Шаблон Azure Resource Manager

Для службы приложений Azure вы можете установить параметры приложения в шаблоне Azure Resource Manager, чтобы включить Snapshot Debugger и Профилировщик. Пример:

{
  "apiVersion": "2015-08-01",
  "name": "[parameters('webSiteName')]",
  "type": "Microsoft.Web/sites",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[variables('hostingPlanName')]"
  ],
  "tags": { 
    "[concat('hidden-related:', resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName')))]": "empty",
    "displayName": "Website"
  },
  "properties": {
    "name": "[parameters('webSiteName')]",
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]"
  },
  "resources": [
    {
      "apiVersion": "2015-08-01",
      "name": "appsettings",
      "type": "config",
      "dependsOn": [
        "[parameters('webSiteName')]",
        "[concat('AppInsights', parameters('webSiteName'))]"
      ],
      "properties": {
        "APPINSIGHTS_INSTRUMENTATIONKEY": "[reference(resourceId('Microsoft.Insights/components', concat('AppInsights', parameters('webSiteName'))), '2014-04-01').InstrumentationKey]",
        "APPINSIGHTS_PROFILERFEATURE_VERSION": "1.0.0",
        "APPINSIGHTS_SNAPSHOTFEATURE_VERSION": "1.0.0",
        "DiagnosticServices_EXTENSION_VERSION": "~3",
        "ApplicationInsightsAgent_EXTENSION_VERSION": "~2"
      }
    }
  ]
},

Неподдерживаемые сценарии

Ниже приведены сценарии, в которых Snapshot Collector не поддерживается.

Сценарий Побочные эффекты Рекомендация
При использовании пакета SDK для Snapshot Collector непосредственно в приложении (.csproj) и включенном расширенном параметре "Interop". Локальный пакет SDK для Application Insights (включая телеметрию Snapshot Collector) будет потерян, и моментальные снимки будут недоступны.
Приложение может аварийно завершить работу при запуске с ошибкой System.ArgumentException: telemetryProcessorTypedoes not implement ITelemetryProcessor.
Дополнительные сведения о возможности "Interop" в Application Insights.
Если вы используете расширенный параметр "Interop", используйте внедрение Snapshot Collector без кода (включается на портале Azure).

Дальнейшие действия

  • Создайте для приложения трафик, который может вызвать исключение. После этого подождите 10–15 минут, пока снимки не будут отправлены в экземпляр Application Insights.
  • См. снимки состояния на портале Azure.
  • Для получения помощи по устранению неполадок отладчика снимков см. Устранение неполадок Snapshot Debugger.