Condividi tramite


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

  1. Se si verificano errori relativi all'installazione del pacchetto o all'installazione dello strumento .NET (The tool package could not be restored o Verify your unity package integrity), verificare che non siano presenti origini di pacchetti non valide nella configurazione nuGet globale (nella C:\Users\<UserName>\AppData\Roaming\NuGet\NuGet.config directory di configurazione predefinita o predefinita di NuGet configurata nel computer).
  2. 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.
  3. Verificare i diritti di accesso nella directory Assets\.MeshCloudScripting\.Packages.

Dopo aver premuto il pulsante Di riproduzione dell'editor di Unity, non accade nulla

  1. 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.
  2. In caso di altri errori, consultare questa pagina per ulteriori informazioni sulla risoluzione dei problemi relativi a determinati errori.
  3. 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.
  4. In caso contrario, segnalare un bug.

Quando si aggiunge un evento nell'applicazione Microsoft Mesh, lo scripting mesh cloud non funziona

  1. Assicurarsi che la scena venga riprodotta come previsto quando la si visualizza in anteprima in locale in Unity.
  2. Assicurarsi che l'ambiente distribuito corrisponda alla scena.map usata dal servizio Mesh Cloud Scripting.
    1. Nel progetto Unity passare al componente Mesh Cloud Scripting e quindi premere Serialize Scene per forzare la serializzazione del grafico della scena.
    2. Ricaricare l'ambiente con il caricamento mesh.
  3. Testare la versione di Unity locale con il servizio distribuito.
    • Controllare i log in Unity per eventuali errori se non funziona.
  4. 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

  1. È 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.
  2. 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.

Configurazione del log di 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.

Raccogliere i log di Unity

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.

Selezione flusso di log

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.

Strumenti avanzati di AppService

Viene aperto il sito Web SCM e quindi è possibile scaricare i log di Docker come file ZIP, come illustrato di seguito.

Kudu

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.

Monitoraggio di AppService

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.

Riquadro Monitoraggio di Azure

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")

Campo di input di monitoraggio di Azure

Esportare i dati in formato csv.

Esportazione di Monitoraggio di Azure

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.

  1. Aprire il portale di Azure e passare alla risorsa AppService in cui è in esecuzione il servizio di scripting cloud mesh.

  2. Fare clic sulla scheda "Monitoraggio" e scorrere fino alla fine della pagina. Fare clic sul pulsante "Configura Monitoraggio di Azure"

    Scheda Monitoraggio del servizio app

  3. Fare clic sul collegamento "+ Aggiungi impostazione di diagnostica" per impostare le categorie di log che verrebbero inviate all'area di lavoro scelta.

    Impostazioni di diagnostica

  4. 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.

    Creare un'impostazione di diagnostica

  5. Abilitare Application Insights dalla pagina servizio app. In questo modo i log vengono propagati all'area di lavoro Log Analytics. Abilitare App Insights

  6. Compilare il modulo e assicurarsi di puntare alla stessa area di lavoro in cui è stata creata l'impostazione di diagnostica.

    Modulo di App Insights

  7. 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

  1. Nella scheda Mesh Uploader Create Environment (Crea ambiente ) prendere nota dei valori id sottoscrizione e gruppo di risorse scelti.

    _______________

  2. 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.

  3. Nel riquadro "Impostazioni" del gruppo di risorse passare a "Distribuzioni". Deve contenere un elenco di tutte le distribuzioni eseguite nel gruppo di risorse.

  4. 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

  1. Raccogliere tutti i log disponibili.
  2. Seguire le indicazioni per i commenti e suggerimenti .