Поделиться через


Устранение неполадок с облачными скриптами

Сбой отправки среды

Если при сбое процесса отправки сетки в облаке сетки произошел сбой, и отображается сообщение об ошибке "Проверить журналы для получения дополнительных сведений", убедитесь, что журналы сведений отображаются в консоли Unity. В настоящее время некоторые ошибки отображаются как журналы сведений. Это будет улучшено в будущем выпуске.

Сбой установки пакета для облачной скриптов сетки

  1. Если возникают ошибки, связанные с установкой пакета или установкой средства .NET (The tool package could not be restored или Verify your unity package integrity), убедитесь, что у вас нет недопустимых источников пакетов в глобальной конфигурации NuGet (в C:\Users\<UserName>\AppData\Roaming\NuGet\NuGet.config каталоге конфигурации NuGet по умолчанию, настроенном на компьютере).
  2. Если при запуске режима воспроизведения возникает package is already installed ошибка, выйдите из режима воспроизведения и снова запустите его, чтобы устранить эту проблему.
  3. Проверьте права доступа в каталоге Assets\.MeshCloudScripting\.Packages.

После нажатия кнопки "Воспроизведение редактора Unity" ничего не происходит

  1. Проверьте журналы Unity на наличие ошибок. В частности, если в коде Сетки Cloud Scripting возникла ошибка компиляции, в журнале ошибок отобразится сообщение "Сбой сборки облачных сценариев". В этом случае откройте csproj-файл для облачной скриптов Сетки и исправьте ошибки. При сборке из Visual Studio вы увидите ошибки более удобно в выходных данных сборки.
  2. Если существуют другие ошибки, просмотрите эту страницу для получения дополнительных сведений об устранении неполадок с конкретными ошибками.
  3. Если ошибок нет, в коде облачной скриптов сетки могут возникнуть ошибки среды выполнения. Подключитесь к приложению с помощью отладчика и проверьте выходные данные для любых ошибок.
  4. Если ничего не поможет, сообщите об ошибке.

При присоединении к событию в приложении Microsoft Mesh облачный скрипт не работает

  1. Убедитесь, что сцена воспроизводится должным образом при предварительном просмотре ее локально в Unity.
  2. Убедитесь, что развернутая среда соответствует сцене.map , используемой службой Cloud Scripting Сетки.
    1. В проекте Unity перейдите к компоненту Сетки Cloud Scripting , а затем нажмите, Serialize Scene чтобы принудительно выполнить сериализацию графа сцены.
    2. Повторно отправьте среду с помощью средства отправки сетки.
  3. Проверьте локальную версию Unity в развернутой службе.
    • Проверьте журналы в Unity для любых ошибок, если они не работают.
  4. Если ничего не поможет, сообщите об ошибке.

Щелчки не получены

  1. Возможно, служба облачных сценариев Сетки отправляет сообщения слишком высокой частоты для обработки системы. В этом случае возможно, что ваш щелчк может быть получен, но из-за большого невыполненной работы сообщений требуется длительное время для распространения результата на клиент. Попробуйте временно отключить код обновления высокой частоты, чтобы узнать, устранена ли проблема. Если это так, попробуйте перейти к аниматорам Unity вместо обновления свойств из Сетки Cloud Scripting.
  2. Если ничего не поможет, сообщите об ошибке.

Unity зависает после нажатия клавиши Play

При переключении фокуса с Unity на другое приложение во время воспроизведения Unity служба облачных сценариев Сетки продолжает выполняться, отправляя сообщения в очередь сообщений. При переключении фокуса обратно на Unity он приостанавливается, пока не будет полностью удалена очередь. Если служба облачных сценариев сетки делает много частых изменений состояния и (или) вы переключили фокус на Unity в течение длительного времени, Unity может заморозить некоторое время, пока это происходит.

Сведения о сборе журналов

Сбор журналов Unity

Прежде чем сообщать о проблеме, задайте для параметра Verbosity значение "Диагностика".

Конфигурация журнала диагностики

Воспроизвести проблему и отправить журналы Unity. Файл журнала можно найти с помощью меню Unity, которое хранится по умолчанию %LOCALAPPDATA%\Unity\Editor\Editor.log.

Сбор журналов Unity

Сбор журналов клиентов из приложения Microsoft Mesh

Настройте журналы клиента ПК, создав файл на рабочем столе с именем "startup_settings.json" со следующим содержимым:

{
  "use_startup_settings": true,
  "log_groups": [
    { "name": "CloudScriptingClientSDK", "level": "Debug" },
    { "name": "CloudScriptingUnityRuntime", "level": "Debug" }
  ]
}

Воспроизвести проблему и предоставить общий доступ к журналам Unity. Журналы приложений Microsoft Mesh можно найти по адресу %USERPROFILE%\AppData\LocalLow\Microsoft\Microsoft Mesh\Player.log

Сбор журналов сервера

А. Потоковая передача журналов

I. Поток журналов на портале Azure

Чтобы просмотреть журналы из службы облачных сценариев Сетки, в разделе "Мониторинг" ресурса AppService щелкните меню "Поток журналов", чтобы просмотреть журналы из контейнера, как показано на рисунке ниже.

Выбор потока журнала

II. Поток журналов с помощью Azure CLI

Если на локальном компьютере установлен Azure CLI, вы также можете хвостить эти же журналы с локального компьютера, выполнив следующую команду в терминале:

az webapp log tail --name <APP_SERVICE_NAME> --resource-group <RESOURCE_GROUP_NAME>

III. Скачивание журналов в виде ZIP-файла

Вы также можете скачать файлы журналов из размещенной службы приложений, перейдя в дополнительные средства (Kudu). В разделе "Средства разработки" в левой области найдите дополнительные средства и нажмите кнопку "Перейти".

Расширенные средства AppService

Откроется веб-сайт SCM и вы можете скачать журналы Docker в виде ZIP-файла, как показано ниже.

Kudu

B. Azure Monitor

Кроме того, с помощью Azure Monitor можно создавать запросы KQL (язык запросов Kusto), чтобы выбрать журналы, которые особенно заинтересованы в событиях, диапазонах времени и т. д. Это будет автоматически настроено для вас, если во время развертывания установлен флажок "Включить мониторинг приложений". Если нет, ознакомьтесь с разделом настройки Azure Monitor вручную, чтобы настроить Azure Monitor для развертывания.

Чтобы использовать это, в разделе "Мониторинг" области навигации выберите "Журналы".

Мониторинг приложений

В области мониторинга запросов можно выбрать нужные журналы. На момент написания статьи у нас есть AppServiceConsoleLogs, AppServiceHTTPLogs, AppServiceAppLogs и AppServicePlatformLogs. Чтобы просмотреть журналы из контейнера Docker, можно найти журналы в AppServiceAppLogs и /или AppServiceConsoleLogs.

Область мониторинга Azure

В текстовом поле, предоставленном в правой части меню "Таблицы ", введите следующий запрос KQL:

AppServiceConsoleLogs
| extend newLog = iif(
ResultDescription has ": Orleans.LifecycleSubject"
or ResultDescription has ": Orleans.Runtime.Catalog"
or ResultDescription has ": Microsoft.Hosting.Lifetime"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.CloudApplication"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Hosting.Launcher.CloudAppInstance"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Hosting.Core.NamedPipesCloudScriptingSessionGrain"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Cloud.Middleware.CloudScriptingBridge"
or ResultDescription has "UNOBSERVED EXCEPTION:"
or ResultDescription has ": Microsoft.SceneAppService.SceneAppHub"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Hosting.Core.NamedPipesCloudScriptingSessionGrain"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Hosting.Launcher.CloudAppInstanceFactory"
or ResultDescription has ": Microsoft.ClientChannel.Hosting.ProcessLifecycleLoggers"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Services.ApplicationWorkDispatcher"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Services.CloudScriptingHostedService"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Hosting.Launcher.CloudScriptingPreparationService"
or ResultDescription has ": Microsoft.Mesh.CloudScripting.Cloud.Middleware.CloudAppProcessFactory"
or ResultDescription has ": Microsoft.ClientChannel.Resources.ClientLinkGrain"
, 1, 0)
| sort by TimeGenerated asc
| extend logId = row_cumsum(newLog) 
| summarize ResultDescription=make_list(ResultDescription), TimeGenerated=min(TimeGenerated) by logId
| extend ResultDescription = strcat_array(ResultDescription, "")
| sort by TimeGenerated desc
| project TimeGenerated, ResultDescription
| where not (ResultDescription has "Broadcasting data of size")

Поле ввода мониторинга Azure

Экспорт данных в csv-файл.

Экспорт мониторинга Azure

Настройка вручную для Azure Monitor (необязательно)

Пропустить, если во время развертывания установлен флажок "Включить мониторинг приложений".

Для этой настройки требуется рабочая область Log Analytics. Если у вас нет существующей рабочей области, следуйте официальному руководству.

  1. Откройте портал Azure и перейдите к ресурсу AppService, в котором выполняется служба облачных сценариев Сетки.

  2. Щелкните вкладку "Мониторинг" и прокрутите внизу страницы. Нажмите кнопку "Настройка Azure Monitor"

    Вкладка

  3. Щелкните ссылку "+ Добавить параметр диагностики", чтобы задать категории журналов, которые будут отправлены в выбранную рабочую область.

    Параметры диагностики

  4. В запросе заполните поле "Имя параметра диагностики", а затем выберите нужные категории журналов (например, журналы консоли Служба приложений, Служба приложений журналы приложений), а затем установите флажок "Отправить в рабочую область Log Analytics", а затем выберите предпочитаемую существующую рабочую область Log Analytics.

    Создание параметра диагностики

  5. Включите Application Insights на странице Служба приложений. Это обеспечит распространение журналов в рабочую область Log Analytics. Включение Application Insights

  6. Заполните форму и обязательно укажите ее в той же рабочей области, в которой был создан параметр диагностики.

    Форма App Insights

  7. Перезапустите службу приложений и подождите несколько минут. Теперь вы сможете запрашивать журналы в Azure Monitor, как описано в разделе Azure Monitor.

Изучение развертываний облачных сценариев в Azure

  1. На вкладке "Создание среды для отправки сетки" запишите выбранные вами значения идентификатора подписки и группы ресурсов.

    _______________

  2. На портале Azure и в выбранной подписке перейдите в группу ресурсов. Вы можете выполнить поиск имени группы ресурсов в строке поиска или перейти к службе "Группы ресурсов" и найти там группу ресурсов. Убедитесь, что вы находитесь в правильном клиенте и подписке.

  3. В области "Параметры" группы ресурсов перейдите к разделу "Развертывания". Это должно содержать список всех развертываний, которые были сделаны в группу ресурсов.

  4. Развертывания облачных сценариев, которые вам интересны:

  • Подготовка приложений. Это первый запуск развертывания и используется для подготовки всех необходимых ресурсов облачной скриптов. Его можно определить с помощью provisionApp в качестве фильтра в окне развертывания.

  • Параметры приложения. Это создает и обновляет параметры веб-приложения. Его можно определить с помощью svc-appsettings в качестве фильтра в окне развертывания.

  • Параметры промежуточного приложения. Это создает и обновляет промежуточный слот веб-приложения. Его можно определить с помощью svc-staging-appsettings в качестве фильтра в окне развертывания.

  • Развертывание приложений: используется для последующих изменений инфраструктуры. Он развертывает последнюю версию образа docker cloudhost в промежуточном слоте веб-приложения. Это можно определить с помощью deployApp в качестве фильтра в окне развертывания.

  • Переключение слотов приложений: это переключение версий образа docker cloudhost, присутствующих в веб-приложении и промежуточном веб-приложении слота. Это можно определить с помощью deployApp-swap в качестве фильтра в окне развертывания.

    _______________

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

_______________

Ниже приведен пример развертывания, который не удалось завершиться, включая причину сбоя:

_______________

_______________

Последующие действия зависят от определенных сообщений об ошибках.

Как сообщить о проблемах

  1. Соберите все доступные журналы.
  2. Следуйте инструкциям по отзыву .