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

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

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

Сбой установки пакета сценариев Mesh Cloud

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

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

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

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

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

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

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

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

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

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

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

Воспроизведите проблему, а затем отправьте журналы 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 Corporation\Microsoft Mesh\player.log

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

A. Stream журнала

И. Stream журналов на портале Azure

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

Log Stream Select

2\. Журнал Stream с помощью Azure CLI

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

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

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

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

AppService Advanced Tools

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

Kudu

Б. Azure Monitor

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

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

AppService Monitoring

В области мониторинг запросов можно выбрать нужные журналы. На момент написания статьи у нас есть "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, в котором выполняется служба сценариев Mesh Cloud.

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

    Вкладка "

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

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

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

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

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

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

    Форма App Insights

  7. Перезапустите AppService и подождите пару минут. Теперь вы сможете запрашивать журналы в 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. Следуйте указаниям по обратной связи .