Устранение неполадок с облачными скриптами
Сбой отправки среды
Если при сбое процесса отправки сетки в облаке сетки произошел сбой, и отображается сообщение об ошибке "Проверить журналы для получения дополнительных сведений", убедитесь, что журналы сведений отображаются в консоли Unity. В настоящее время некоторые ошибки отображаются как журналы сведений. Это будет улучшено в будущем выпуске.
Сбой установки пакета для облачной скриптов сетки
- Если возникают ошибки, связанные с установкой пакета или установкой средства .NET (
The tool package could not be restored
илиVerify your unity package integrity
), убедитесь, что у вас нет недопустимых источников пакетов в глобальной конфигурации NuGet (вC:\Users\<UserName>\AppData\Roaming\NuGet\NuGet.config
каталоге конфигурации NuGet по умолчанию, настроенном на компьютере). - Если при запуске режима воспроизведения возникает
package is already installed
ошибка, выйдите из режима воспроизведения и снова запустите его, чтобы устранить эту проблему. - Проверьте права доступа в каталоге
Assets\.MeshCloudScripting\.Packages
.
После нажатия кнопки "Воспроизведение редактора Unity" ничего не происходит
- Проверьте журналы Unity на наличие ошибок. В частности, если в коде Сетки Cloud Scripting возникла ошибка компиляции, в журнале ошибок отобразится сообщение "Сбой сборки облачных сценариев". В этом случае откройте csproj-файл для облачной скриптов Сетки и исправьте ошибки. При сборке из Visual Studio вы увидите ошибки более удобно в выходных данных сборки.
- Если существуют другие ошибки, просмотрите эту страницу для получения дополнительных сведений об устранении неполадок с конкретными ошибками.
- Если ошибок нет, в коде облачной скриптов сетки могут возникнуть ошибки среды выполнения. Подключитесь к приложению с помощью отладчика и проверьте выходные данные для любых ошибок.
- Если ничего не поможет, сообщите об ошибке.
При присоединении к событию в приложении Microsoft Mesh облачный скрипт не работает
- Убедитесь, что сцена воспроизводится должным образом при предварительном просмотре ее локально в Unity.
- Убедитесь, что развернутая среда соответствует сцене.map , используемой службой Cloud Scripting Сетки.
- В проекте Unity перейдите к компоненту Сетки Cloud Scripting , а затем нажмите,
Serialize Scene
чтобы принудительно выполнить сериализацию графа сцены. - Повторно отправьте среду с помощью средства отправки сетки.
- В проекте Unity перейдите к компоненту Сетки Cloud Scripting , а затем нажмите,
- Проверьте локальную версию Unity в развернутой службе.
- Проверьте журналы в Unity для любых ошибок, если они не работают.
- Если ничего не поможет, сообщите об ошибке.
Щелчки не получены
- Возможно, служба облачных сценариев Сетки отправляет сообщения слишком высокой частоты для обработки системы. В этом случае возможно, что ваш щелчк может быть получен, но из-за большого невыполненной работы сообщений требуется длительное время для распространения результата на клиент. Попробуйте временно отключить код обновления высокой частоты, чтобы узнать, устранена ли проблема. Если это так, попробуйте перейти к аниматорам Unity вместо обновления свойств из Сетки Cloud Scripting.
- Если ничего не поможет, сообщите об ошибке.
Unity зависает после нажатия клавиши Play
При переключении фокуса с Unity на другое приложение во время воспроизведения Unity служба облачных сценариев Сетки продолжает выполняться, отправляя сообщения в очередь сообщений. При переключении фокуса обратно на Unity он приостанавливается, пока не будет полностью удалена очередь. Если служба облачных сценариев сетки делает много частых изменений состояния и (или) вы переключили фокус на Unity в течение длительного времени, Unity может заморозить некоторое время, пока это происходит.
Сведения о сборе журналов
Сбор журналов Unity
Прежде чем сообщать о проблеме, задайте для параметра Verbosity значение "Диагностика".
Воспроизвести проблему и отправить журналы Unity. Файл журнала можно найти с помощью меню Unity, которое хранится по умолчанию %LOCALAPPDATA%\Unity\Editor\Editor.log
.
Сбор журналов клиентов из приложения 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). В разделе "Средства разработки" в левой области найдите дополнительные средства и нажмите кнопку "Перейти".
Откроется веб-сайт SCM и вы можете скачать журналы Docker в виде ZIP-файла, как показано ниже.
B. Azure Monitor
Кроме того, с помощью Azure Monitor можно создавать запросы KQL (язык запросов Kusto), чтобы выбрать журналы, которые особенно заинтересованы в событиях, диапазонах времени и т. д. Это будет автоматически настроено для вас, если во время развертывания установлен флажок "Включить мониторинг приложений". Если нет, ознакомьтесь с разделом настройки Azure Monitor вручную, чтобы настроить Azure Monitor для развертывания.
Чтобы использовать это, в разделе "Мониторинг" области навигации выберите "Журналы".
В области мониторинга запросов можно выбрать нужные журналы. На момент написания статьи у нас есть AppServiceConsoleLogs, AppServiceHTTPLogs, AppServiceAppLogs и AppServicePlatformLogs. Чтобы просмотреть журналы из контейнера Docker, можно найти журналы в AppServiceAppLogs и /или AppServiceConsoleLogs.
В текстовом поле, предоставленном в правой части меню "Таблицы ", введите следующий запрос 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")
Экспорт данных в csv-файл.
Настройка вручную для Azure Monitor (необязательно)
Пропустить, если во время развертывания установлен флажок "Включить мониторинг приложений".
Для этой настройки требуется рабочая область Log Analytics. Если у вас нет существующей рабочей области, следуйте официальному руководству.
Откройте портал Azure и перейдите к ресурсу AppService, в котором выполняется служба облачных сценариев Сетки.
Щелкните вкладку "Мониторинг" и прокрутите внизу страницы. Нажмите кнопку "Настройка Azure Monitor"
Щелкните ссылку "+ Добавить параметр диагностики", чтобы задать категории журналов, которые будут отправлены в выбранную рабочую область.
В запросе заполните поле "Имя параметра диагностики", а затем выберите нужные категории журналов (например, журналы консоли Служба приложений, Служба приложений журналы приложений), а затем установите флажок "Отправить в рабочую область Log Analytics", а затем выберите предпочитаемую существующую рабочую область Log Analytics.
Включите Application Insights на странице Служба приложений. Это обеспечит распространение журналов в рабочую область Log Analytics.
Заполните форму и обязательно укажите ее в той же рабочей области, в которой был создан параметр диагностики.
Перезапустите службу приложений и подождите несколько минут. Теперь вы сможете запрашивать журналы в Azure Monitor, как описано в разделе Azure Monitor.
Изучение развертываний облачных сценариев в Azure
На вкладке "Создание среды для отправки сетки" запишите выбранные вами значения идентификатора подписки и группы ресурсов.
На портале Azure и в выбранной подписке перейдите в группу ресурсов. Вы можете выполнить поиск имени группы ресурсов в строке поиска или перейти к службе "Группы ресурсов" и найти там группу ресурсов. Убедитесь, что вы находитесь в правильном клиенте и подписке.
В области "Параметры" группы ресурсов перейдите к разделу "Развертывания". Это должно содержать список всех развертываний, которые были сделаны в группу ресурсов.
Развертывания облачных сценариев, которые вам интересны:
Подготовка приложений. Это первый запуск развертывания и используется для подготовки всех необходимых ресурсов облачной скриптов. Его можно определить с помощью provisionApp в качестве фильтра в окне развертывания.
Параметры приложения. Это создает и обновляет параметры веб-приложения. Его можно определить с помощью svc-appsettings в качестве фильтра в окне развертывания.
Параметры промежуточного приложения. Это создает и обновляет промежуточный слот веб-приложения. Его можно определить с помощью svc-staging-appsettings в качестве фильтра в окне развертывания.
Развертывание приложений: используется для последующих изменений инфраструктуры. Он развертывает последнюю версию образа docker cloudhost в промежуточном слоте веб-приложения. Это можно определить с помощью deployApp в качестве фильтра в окне развертывания.
Переключение слотов приложений: это переключение версий образа docker cloudhost, присутствующих в веб-приложении и промежуточном веб-приложении слота. Это можно определить с помощью deployApp-swap в качестве фильтра в окне развертывания.
Чтобы просмотреть дополнительные сведения о развертывании, щелкните имя развертывания. Сведения об операции для каждого типа ресурса включают сообщение об ошибке, связанное с развертыванием.
Ниже приведен пример развертывания, который не удалось завершиться, включая причину сбоя:
Последующие действия зависят от определенных сообщений об ошибках.
Как сообщить о проблемах
- Соберите все доступные журналы.
- Следуйте инструкциям по отзыву .