Solución de problemas de scripting en la nube
Error de carga del entorno
Si se produjo un error en una fase de scripting en la nube de Mesh durante el proceso del cargador de malla y el error que se muestra es "Comprobar los registros para obtener más información", asegúrese de que los registros de información se muestran en la consola de Unity. Actualmente, algunos errores se muestran como registros de información. Esto se mejorará en una versión futura.
Error de instalación del paquete de scripting en la nube de Mesh
- Si se producen errores relacionados con la instalación de paquetes o la instalación de herramientas de .NET (
The tool package could not be restored
oVerify your unity package integrity
), compruebe que no tiene orígenes de paquetes no válidos en la configuración global de NuGet (enC:\Users\<UserName>\AppData\Roaming\NuGet\NuGet.config
o en el directorio de configuración de NuGet predeterminado que está configurado en la máquina). - Si se produce el error al iniciar el
package is already installed
modo de reproducción, salir del modo de reproducción e iniciarlo de nuevo debe mitigarlo. - Compruebe los derechos de acceso en el directorio
Assets\.MeshCloudScripting\.Packages
.
Después de presionar el botón De reproducción del editor de Unity, no ocurre nada
- Compruebe los registros de Unity para ver si hay errores. En concreto, si el código de Scripting en la nube de Mesh tiene un error de compilación, verá "Error en la compilación de scripting en la nube" en el registro de errores. En este caso, abra el archivo csproj de Mesh Cloud Scripting y corrija los errores. Si compila desde Visual Studio, mostrará los errores más convenientemente en la salida de compilación.
- Si hay otros errores, revise esta página para obtener información adicional de solución de problemas sobre errores concretos.
- Si no hay ningún error, es posible que haya errores en tiempo de ejecución en el código de Scripting en la nube de Mesh. Adjunte a la aplicación con el depurador e inspeccione la salida de los errores.
- Si nada ayuda, notifique un error.
Al unir un evento en la aplicación Microsoft Mesh, Mesh Cloud Scripting no funciona
- Asegúrese de que la escena se reproduce según lo previsto al obtener una vista previa local en Unity.
- Asegúrese de que el entorno implementado coincide con el elemento scene.map usado por el servicio Mesh Cloud Scripting.
- En el proyecto de Unity, vaya al componente Mesh Cloud Scripting y presione
Serialize Scene
para forzar la serialización del grafo de escena. - Vuelva a cargar el entorno con Mesh Uploader.
- En el proyecto de Unity, vaya al componente Mesh Cloud Scripting y presione
- Pruebe la versión local de Unity en el servicio implementado.
- Compruebe los registros de Unity si no funciona.
- Si nada ayuda, notifique un error.
- Inspeccione los registros de Scripting en la nube de Mesh e incluya información relevante siempre que sea posible en el informe de errores.
No se reciben clics
- Es posible que mesh Cloud Scripting Service envíe mensajes con una frecuencia demasiado alta para que el sistema lo controle. En este caso, el clic podría recibirse realmente, pero, debido a un gran trabajo pendiente de mensajes, el resultado tarda mucho tiempo en propagarse al cliente. Intente deshabilitar temporalmente el código de actualización de alta frecuencia para ver si esto corrige el problema. Si es así, considere la posibilidad de mover a los animadores de Unity en lugar de actualizar las propiedades de Mesh Cloud Scripting.
- Si nada ayuda, notifique un error.
Unity se bloquea después de presionar Reproducir
Si cambia el foco de Unity a otra aplicación mientras Unity está reproduciendo, Mesh Cloud Scripting Service continúa ejecutándose, enviando mensajes a la cola de mensajes. Cuando se vuelve a cambiar el foco a Unity, se pausa hasta que se purga por completo la cola. Si Mesh Cloud Scripting Service está realizando muchos cambios de estado frecuentes o ha cambiado el foco fuera de Unity durante mucho tiempo, Unity puede inmovilizarse durante algún tiempo mientras esto sucede.
Cómo recopilar registros
Recopilación de registros de Unity
Antes de notificar un problema, establezca Verbosity en Diagnóstico.
Reproduzca el problema y envíe los registros de Unity. Puede encontrar el archivo de registro mediante el menú de Unity, que se almacena de forma predeterminada en %LOCALAPPDATA%\Unity\Editor\Editor.log
.
Recopilación de registros de cliente de la aplicación Microsoft Mesh
Configure los registros de cliente del equipo mediante la creación de un archivo en el escritorio denominado "startup_settings.json" con el siguiente contenido:
{
"use_startup_settings": true,
"log_groups": [
{ "name": "CloudScriptingClientSDK", "level": "Debug" },
{ "name": "CloudScriptingUnityRuntime", "level": "Debug" }
]
}
Reproduzca el problema y, a continuación, comparta los registros de Unity. Los registros de aplicaciones de Microsoft Mesh se pueden encontrar en %USERPROFILE%\AppData\LocalLow\Microsoft\Microsoft Mesh\Player.log
Recopilación de registros de servidor
A Secuencia de registro
I. Flujo de registro en Azure Portal
Para ver los registros de Mesh Cloud Scripting Service, en la sección Supervisión del recurso AppService , haga clic en el menú Flujo de registro para ver los registros del contenedor como se muestra en la imagen siguiente.
II. Flujo de registro a través de la CLI de Azure
Si tiene la CLI de Azure instalada en el equipo local, también podría realizar estos mismos registros desde la máquina local ejecutando el siguiente comando en el terminal:
az webapp log tail --name <APP_SERVICE_NAME> --resource-group <RESOURCE_GROUP_NAME>
III. Descarga de los registros como un archivo ZIP
También puede descargar archivos de registro desde el servicio de aplicaciones hospedado; para ello, vaya a Herramientas avanzadas (Kudu). En la sección "Herramientas de desarrollo" del panel izquierdo, busque Herramientas avanzadas y haga clic en el botón Ir .
Se abre el sitio web de SCM y, a continuación, puede descargar los registros de Docker como un archivo Zip, como se muestra a continuación.
B. Azure Monitor
Como alternativa, con Azure Monitor, puede escribir consultas de KQL (Lenguaje de consulta Kusto) para seleccionar los registros que le interesan especialmente de eventos, intervalos de tiempo y mucho más. Esto se configuraría automáticamente si activaste la casilla "Habilitar supervisión de aplicaciones" durante la implementación. Si no es así, consulte la sección configuración manual de Azure Monitor para configurar Azure Monitor para la implementación.
Para usarlo, en la sección Supervisión del panel de navegación, seleccione Registros.
En el panel Supervisión de consultas, puede seleccionar los registros que le interesan. En el momento de escribir, tenemos "AppServiceConsoleLogs", "AppServiceHTTPLogs", "AppServiceAppLogs" y "AppServicePlatformLogs". Para ver los registros del contenedor de Docker, puede encontrar los registros en "AppServiceAppLogs" o "AppServiceConsoleLogs" más útiles.
En el cuadro de texto proporcionado en el lado derecho del menú Tablas , escriba la siguiente consulta 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")
Exportar datos a csv.
Configuración manual de Azure Monitor (opcional)
Omita si ha activado "Habilitar la supervisión de aplicaciones" durante la implementación.
Se requiere un área de trabajo de Log Analytics para esta configuración. Si no tiene un área de trabajo existente, siga la guía oficial.
Abra Azure Portal y vaya al recurso AppService en el que se ejecuta Mesh Cloud Scripting Service.
Haga clic en la pestaña "Supervisión" y desplácese hasta la parte inferior de la página. Haga clic en el botón "Configurar Azure Monitor".
Haga clic en el vínculo "+ Agregar configuración de diagnóstico" para establecer las categorías de registro que se enviarían al área de trabajo elegida.
En el símbolo del sistema, rellene el campo "Nombre de configuración de diagnóstico", seleccione las categorías de registro que le interesan (ejemplos: Registros de la consola de App Service, Registros de aplicaciones de App Service), active la casilla "Enviar al área de trabajo de Log Analytics" y, a continuación, seleccione el área de trabajo de Log Analytics existente preferida.
Habilite Application Insights desde la página de App Service. Esto garantizaría que los registros se propagan al área de trabajo de Log Analytics.
Rellene el formulario y asegúrese de apuntar a la misma área de trabajo en la que se creó la configuración de diagnóstico.
Reinicie AppService y espere un par de minutos. Ahora debería poder consultar los registros en Azure Monitor, tal como se describe en la sección Azure Monitor.
Investigación de implementaciones de scripting en la nube en Azure
En la pestaña Mesh Uploader Create Environment (Crear entorno del cargador de malla), anote los valores de Id . de suscripción y Grupo de recursos que eligió.
En Azure Portal y en la suscripción seleccionada, vaya al grupo de recursos. Puede buscar el nombre del grupo de recursos en la barra de búsqueda o ir al servicio "Grupos de recursos" y buscar el grupo de recursos allí. Asegúrese de que está en el inquilino y la suscripción correctos.
En el panel "Configuración" del grupo de recursos, vaya a "Implementaciones". Esto debe contener una lista de todas las implementaciones que se han realizado en el grupo de recursos.
Las implementaciones de Scripting en la nube que le interesan son:
Aprovisionamiento de aplicaciones: esta es la primera ejecución de implementación y se usa para aprovisionar todos los recursos de scripting en la nube necesarios. Se puede identificar mediante provisionApp como filtro en la ventana Implementaciones.
Configuración de la aplicación: esto crea y actualiza la configuración de la aplicación web. Se puede identificar mediante svc-appsettings como filtro en la ventana Implementaciones.
Configuración de la aplicación de ensayo: esto crea y actualiza la ranura de ensayo de la aplicación web. Se puede identificar mediante svc-staging-appsettings como filtro en la ventana Implementaciones.
Implementación de aplicaciones: se usa para los cambios posteriores en la infraestructura. Implementa la versión más reciente de la imagen de Docker de cloudhost en el espacio de ensayo de la aplicación web. Esto se puede identificar mediante deployApp como filtro en la ventana Implementaciones.
Intercambio de ranuras de aplicación: intercambia las versiones de la imagen de Docker de cloudhost presentes en la aplicación web y la aplicación web de ranura de ensayo. Esto se puede identificar mediante deployApp-swap como filtro en la ventana Implementaciones.
Para ver detalles adicionales relacionados con la implementación, haga clic en el nombre de la implementación. Los detalles de operación de cada tipo de recurso incluyen el mensaje de error relacionado con la implementación.
Este es un ejemplo de una implementación que no se realizó correctamente, incluida la causa del error:
Los pasos accionables posteriores dependen de los mensajes de error específicos.
Notificación de problemas
- Recopile todos los registros disponibles.
- Siga las instrucciones de comentarios .