Risoluzione dei problemi di scripting cloud
Caricamento dell'ambiente non riuscito
Se una fase di scripting mesh cloud durante il processo di caricamento mesh non è riuscita e l'errore visualizzato è "Controllare i log per altre informazioni", assicurarsi che i log delle informazioni vengano visualizzati nella console unity. Attualmente alcuni errori vengono visualizzati come log delle informazioni. Questa operazione verrà migliorata in una versione futura.
Installazione del pacchetto mesh cloud scripting non riuscita
- Se si verificano errori relativi all'installazione del pacchetto o all'installazione dello strumento .NET (
The tool package could not be restored
oVerify your unity package integrity
), verificare che non siano presenti origini di pacchetti non valide nella configurazione nuGet globale (nellaC:\Users\<UserName>\AppData\Roaming\NuGet\NuGet.config
directory di configurazione predefinita o predefinita di NuGet configurata nel computer). - Se si verifica l'errore durante l'avvio della
package is already installed
modalità di riproduzione, uscire dalla modalità di riproduzione e avviarlo di nuovo dovrebbe attenuarlo. - Verificare i diritti di accesso nella directory
Assets\.MeshCloudScripting\.Packages
.
Dopo aver premuto il pulsante Di riproduzione dell'editor di Unity, non accade nulla
- Controllare i log di Unity per eventuali errori. In particolare, se il codice di scripting del cloud mesh presenta un errore di compilazione, nel log degli errori verrà visualizzato "Cloud Scripting build failed" (Compilazione scripting cloud non riuscita). In questo caso, aprire il file csproj per lo scripting cloud mesh e correggere gli errori. Se si esegue la compilazione da Visual Studio, verranno visualizzati gli errori più facilmente nell'output di compilazione.
- In caso di altri errori, consultare questa pagina per ulteriori informazioni sulla risoluzione dei problemi relativi a determinati errori.
- Se non sono presenti errori, potrebbero verificarsi errori di runtime nel codice di scripting di Mesh Cloud. Connettersi all'applicazione con il debugger ed esaminare l'output per individuare eventuali errori.
- In caso contrario, segnalare un bug.
Quando si aggiunge un evento nell'applicazione Microsoft Mesh, lo scripting mesh cloud non funziona
- Assicurarsi che la scena venga riprodotta come previsto quando la si visualizza in anteprima in locale in Unity.
- Assicurarsi che l'ambiente distribuito corrisponda alla scena.map usata dal servizio Mesh Cloud Scripting.
- Nel progetto Unity passare al componente Mesh Cloud Scripting e quindi premere
Serialize Scene
per forzare la serializzazione del grafico della scena. - Ricaricare l'ambiente con il caricamento mesh.
- Nel progetto Unity passare al componente Mesh Cloud Scripting e quindi premere
- Testare la versione di Unity locale con il servizio distribuito.
- Controllare i log in Unity per eventuali errori se non funziona.
- In caso contrario, segnalare un bug.
- Esaminare i log di scripting di Mesh Cloud e includere le informazioni pertinenti, se possibile, nel report sui bug.
I clic non vengono ricevuti
- È possibile che il servizio di scripting cloud mesh invii messaggi a una frequenza troppo elevata per il sistema da gestire. In questo caso, il clic potrebbe essere effettivamente ricevuto, ma, a causa di un backlog di grandi dimensioni dei messaggi, il risultato richiede molto tempo per essere propagato al client. Provare a disabilitare temporaneamente il codice di aggiornamento ad alta frequenza per verificare se il problema è stato risolto. In tal caso, è consigliabile passare all'unità Animatori Unity invece di aggiornare le proprietà da Mesh Cloud Scripting.
- In caso contrario, segnalare un bug.
Unity si blocca dopo aver premuto Play
Se si passa lo stato attivo da Unity a un'altra app durante la riproduzione di Unity, il servizio di scripting cloud mesh continua a essere eseguito, inviando messaggi alla coda dei messaggi. Quando si passa lo stato attivo a Unity, viene sospeso fino a quando non svuota completamente la coda. Se il servizio di scripting cloud mesh sta apportando molte modifiche frequenti allo stato e/o si è spostato lo stato attivo da Unity per molto tempo, Unity può bloccarsi per qualche tempo mentre si verifica questo problema.
Come raccogliere i log
Raccolta dei log di Unity
Prima di segnalare un problema, impostare Dettaglio su Diagnostica.
Riprodurre il problema e quindi inviare i log di Unity. È possibile trovare il file di log usando il menu Unity, archiviato per impostazione predefinita in %LOCALAPPDATA%\Unity\Editor\Editor.log
.
Raccolta dei log client dall'applicazione Microsoft Mesh
Configurare i log del client PC creando un file sul desktop denominato "startup_settings.json" con il contenuto seguente:
{
"use_startup_settings": true,
"log_groups": [
{ "name": "CloudScriptingClientSDK", "level": "Debug" },
{ "name": "CloudScriptingUnityRuntime", "level": "Debug" }
]
}
Riprodurre il problema e quindi condividere i log di Unity. I log dell'applicazione Microsoft Mesh sono disponibili all'indirizzo %USERPROFILE%\AppData\LocalLow\Microsoft\Microsoft Mesh\Player.log
Raccolta dei log del server
R. Flusso di log
I. Log Stream nel portale di Azure
Per visualizzare i log dal servizio di scripting cloud mesh, nella sezione Monitoraggio della risorsa AppService fare clic sul menu Flusso di log per visualizzare i log dal contenitore, come illustrato nell'immagine seguente.
II. Flusso di log tramite l'interfaccia della riga di comando di Azure
Se nel computer locale è installata l'interfaccia della riga di comando di Azure, è anche possibile eseguire la coda degli stessi log dal computer locale eseguendo il comando seguente nel terminale:
az webapp log tail --name <APP_SERVICE_NAME> --resource-group <RESOURCE_GROUP_NAME>
III. Scaricare i log come file ZIP
È anche possibile scaricare i file di log dal servizio app ospitato passando a Strumenti avanzati (Kudu). Nella sezione "Strumenti di sviluppo" del riquadro sinistro individuare Strumenti avanzati e quindi fare clic sul pulsante Vai.
Viene aperto il sito Web SCM e quindi è possibile scaricare i log di Docker come file ZIP, come illustrato di seguito.
B. Monitoraggio di Azure
In alternativa, usando Monitoraggio di Azure, è possibile scrivere query KQL (Linguaggio di query Kusto) per selezionare i log a cui si è particolarmente interessati da eventi, intervalli di tempo e altro ancora. Questa impostazione verrà configurata automaticamente se è stata selezionata la casella "Abilita monitoraggio app" durante la distribuzione. In caso contrario, vedere la sezione configurazione manuale per Monitoraggio di Azure per configurare Monitoraggio di Azure per la distribuzione.
Per usarlo, nella sezione Monitoraggio del riquadro di spostamento selezionare Log.
Nel riquadro Monitoraggio query è possibile selezionare i log a cui si è interessati. Al momento della scrittura, abbiamo "AppServiceConsoleLogs", "AppServiceHTTPLogs", "AppServiceAppLogs" e "AppServicePlatformLogs". Per visualizzare i log dal contenitore Docker, è possibile trovare i log in "AppServiceAppLogs" e/o "AppServiceConsoleLogs" più utili.
Nella casella di testo specificata sul lato destro del menu Tabelle digitare la query KQL seguente:
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")
Esportare i dati in formato csv.
Installazione manuale per Monitoraggio di Azure (facoltativo)
Ignorare se è stato selezionato "Abilita monitoraggio app" durante la distribuzione.
Per questa configurazione è necessaria un'area di lavoro Log Analytics. Se non si dispone di un'area di lavoro esistente, seguire la guida ufficiale.
Aprire il portale di Azure e passare alla risorsa AppService in cui è in esecuzione il servizio di scripting cloud mesh.
Fare clic sulla scheda "Monitoraggio" e scorrere fino alla fine della pagina. Fare clic sul pulsante "Configura Monitoraggio di Azure"
Fare clic sul collegamento "+ Aggiungi impostazione di diagnostica" per impostare le categorie di log che verrebbero inviate all'area di lavoro scelta.
Nel prompt compilare il campo "Nome impostazione diagnostica", quindi selezionare le categorie di log a cui si è interessati (esempi: log della console servizio app, log servizio app applicazioni), quindi selezionare la casella "Invia all'area di lavoro Log Analytics" e quindi selezionare l'area di lavoro Log Analytics preferita.
Abilitare Application Insights dalla pagina servizio app. In questo modo i log vengono propagati all'area di lavoro Log Analytics.
Compilare il modulo e assicurarsi di puntare alla stessa area di lavoro in cui è stata creata l'impostazione di diagnostica.
Riavviare AppService e attendere un paio di minuti. È ora possibile eseguire query sui log in Monitoraggio di Azure come descritto nella sezione Monitoraggio di Azure.
Analisi delle distribuzioni di scripting nel cloud in Azure
Nella scheda Mesh Uploader Create Environment (Crea ambiente ) prendere nota dei valori id sottoscrizione e gruppo di risorse scelti.
Nel portale di Azure e nella sottoscrizione selezionata passare al gruppo di risorse. È possibile cercare il nome del gruppo di risorse dalla barra di ricerca oppure passare al servizio "Gruppi di risorse" e trovare il gruppo di risorse. Assicurarsi di essere nel tenant e nella sottoscrizione corretti.
Nel riquadro "Impostazioni" del gruppo di risorse passare a "Distribuzioni". Deve contenere un elenco di tutte le distribuzioni eseguite nel gruppo di risorse.
Le distribuzioni di scripting cloud di interesse sono le seguenti:
Provisioning di app: è la prima esecuzione della distribuzione e viene usata per effettuare il provisioning di tutte le risorse di scripting cloud necessarie. Può essere identificato usando provisionApp come filtro nella finestra Distribuzioni.
Impostazioni app: crea e aggiorna le impostazioni dell'app Web. Può essere identificato usando svc-appsettings come filtro nella finestra Distribuzioni.
Impostazioni dell'app di gestione temporanea: crea e aggiorna lo slot di gestione temporanea dell'app Web. Può essere identificato usando svc-staging-appsettings come filtro nella finestra Distribuzioni.
Distribuzione di app: viene usata per le successive modifiche all'infrastruttura. Distribuisce la versione più recente dell'immagine Docker cloudhost nello slot di gestione temporanea dell'app Web. Questa operazione può essere identificata usando deployApp come filtro nella finestra Distribuzioni.
Scambio degli slot dell'app: in questo modo vengono scambiate le versioni delle immagini docker di cloudhost presenti nell'app Web e nell'app Web slot di staging. Questa operazione può essere identificata usando deployApp-swap come filtro nella finestra Distribuzioni.
Per visualizzare dettagli aggiuntivi relativi alla distribuzione, fare clic sul nome della distribuzione. I dettagli dell'operazione per ogni tipo di risorsa includono il messaggio di errore correlato alla distribuzione.
Di seguito è riportato un esempio di distribuzione che non è riuscita, inclusa la causa dell'errore:
I passaggi interattivi successivi dipendono dai messaggi di errore specifici.
Come segnalare i problemi
- Raccogliere tutti i log disponibili.
- Seguire le indicazioni per i commenti e suggerimenti .