Dela via


Felsökning av molnskript

Det gick inte att ladda upp miljön

Om en Mesh Cloud Scripting-fas under Mesh Uploader-processen misslyckades och felet som visas är "Kontrollera loggarna för mer information" kontrollerar du att informationsloggarna visas i Unity-konsolen. För närvarande visas vissa fel som informationsloggar. Detta kommer att förbättras i en framtida version.

Installationen av mesh-molnskriptpaket misslyckades

  1. Om du stöter på fel som rör paketinstallation eller .NET-verktygsinstallation (The tool package could not be restored eller Verify your unity package integrity), kontrollerar du att du inte har ogiltiga paketkällor i din globala NuGet-konfiguration (under C:\Users\<UserName>\AppData\Roaming\NuGet\NuGet.config eller standardkatalogen för NuGet-konfiguration som är konfigurerad på datorn).
  2. Om du stöter på package is already installed felet när du startar Uppspelningsläge bör du undvika att avsluta uppspelningsläget och starta det igen.
  3. Verifiera åtkomstbehörigheter för katalogen Assets\.MeshCloudScripting\.Packages.

När du har tryckt på knappen Spela upp i Unity-redigeraren händer ingenting

  1. Kontrollera om det finns några fel i Unity-loggarna. I synnerhet om din Mesh Cloud Scripting-kod har ett kompileringsfel visas "Cloud Scripting build failed" i felloggen. I det här fallet öppnar du csproj-filen för ditt Mesh Cloud Scripting och åtgärdar felen. Om du skapar från Visual Studio visas felen bekvämare i byggutdata.
  2. Om det finns andra fel läser du den här sidan för ytterligare felsökningsinformation om specifika fel.
  3. Om det inte finns några fel kan det finnas körningsfel i mesh-molnskriptkoden. Koppla till ditt program med felsökningsprogrammet och kontrollera utdata för eventuella fel.
  4. Om inget hjälper rapporterar du en bugg.

När du ansluter till en händelse i Microsoft Mesh-programmet fungerar inte Mesh Cloud Scripting

  1. Se till att scenen spelas upp som förväntat när du förhandsgranskar den lokalt i Unity.
  2. Se till att den distribuerade miljön matchar den scen.map som används av Mesh Cloud Scripting-tjänsten.
    1. I Unity-projektet navigerar du till Mesh Cloud Scripting-komponenten och trycker sedan på Serialize Scene för att framtvinga scengrafserialisering.
    2. Ladda upp din miljö igen med Mesh Uploader.
  3. Testa din lokala Unity-version mot den distribuerade tjänsten.
    • Kontrollera loggarna i Unity om det finns fel om de inte fungerar.
  4. Om inget hjälper rapporterar du en bugg.

Klick tas inte emot

  1. Det är möjligt att din Mesh Cloud Scripting Service skickar meddelanden med för hög frekvens för systemet att hantera. I det här fallet kan ditt klick faktiskt tas emot, men på grund av stora kvarvarande meddelanden tar det lång tid innan resultatet sprids tillbaka till klienten. Försök att tillfälligt inaktivera högfrekvent uppdateringskod för att se om det här löser problemet. Om det gör det kan du överväga att flytta för att köra Unity Animators i stället för att uppdatera egenskaper från Mesh Cloud Scripting.
  2. Om inget hjälper rapporterar du en bugg.

Unity fryser när du trycker på Spela upp

Om du byter fokus från Unity till en annan app medan Unity spelas upp fortsätter Mesh Cloud Scripting Service att köras och skicka meddelanden till meddelandekön. När du växlar fokus tillbaka till Unity pausas det tills kön töms helt. Om Mesh Cloud Scripting Service gör många frekventa tillståndsändringar och/eller om du har bytt fokus från Unity under en längre tid kan Unity frysa under en tid medan detta sker.

Samla in loggar

Samla in Unity-loggar

Innan du rapporterar ett problem anger du Verbosity till Diagnostik.

Konfiguration av diagnostiklogg

Återskapa problemet och skicka sedan Unity-loggarna. Du hittar loggfilen med hjälp av Unity-menyn, som lagras som standard på %LOCALAPPDATA%\Unity\Editor\Editor.log.

Samla in Unity-loggar

Samla in klientloggar från Microsoft Mesh-programmet

Konfigurera datorklientloggarna genom att skapa en fil på skrivbordet med namnet "startup_settings.json" med följande innehåll:

{
  "use_startup_settings": true,
  "log_groups": [
    { "name": "CloudScriptingClientSDK", "level": "Debug" },
    { "name": "CloudScriptingUnityRuntime", "level": "Debug" }
  ]
}

Återskapa problemet och dela sedan Unity-loggarna. Microsoft Mesh-programloggar finns på %USERPROFILE%\AppData\LocalLow\Microsoft\Microsoft Mesh\Player.log

Samla in serverloggar

A. Loggström

I. Log Stream på Azure-portalen

Om du vill se loggar från Mesh Cloud Scripting Service i avsnittet Övervakning i AppService-resursen klickar du på Log Stream-menyn för att se loggar från containern enligt bilden nedan.

Välj Loggström

II. Loggström via Azure CLI

Om du har Azure CLI installerat på den lokala datorn kan du även dra samma loggar från den lokala datorn genom att köra följande kommando i terminalen:

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

III. Ladda ned loggarna som en zip-fil

Du kan också ladda ned loggfiler från den värdbaserade apptjänsten genom att gå till Advanced Tools (Kudu). I avsnittet Utvecklingsverktyg i den vänstra rutan letar du upp Avancerade verktyg och klickar sedan på knappen Gå .

Avancerade Verktyg för AppService

SCM-webbplatsen öppnas och du kan sedan ladda ned Docker-loggarna som en Zip-fil, enligt nedan.

Kudu

B. Azure Monitor

Med Hjälp av Azure Monitor kan du också skriva KQL-frågor (Kusto-frågespråk) för att välja ut loggar som du är särskilt intresserad av från händelser, tidsintervall med mera. Detta konfigureras automatiskt om du har markerat rutan "Aktivera appövervakning" under distributionen. Om inte kan du läsa avsnittet manuell konfiguration för Azure Monitor för att konfigurera Azure Monitor för distributionen.

Om du vill använda detta går du till avsnittet Övervakning i navigeringsfönstret och väljer Loggar.

AppService-övervakning

I frågan Övervakningsfönster kan du välja de loggar som du är intresserad av. I skrivande stund har vi "AppServiceConsoleLogs", "AppServiceHTTPLogs", "AppServiceAppLogs" och "AppServicePlatformLogs". Om du vill visa loggarna från Docker-containern kanske loggarna i "AppServiceAppLogs" och/eller "AppServiceConsoleLogs" är mer användbara.

Azure-övervakningsfönster

I textrutan till höger på menyn Tabeller skriver du följande KQL-fråga:

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

Indatafält för Azure Monitoring

Exportera data till csv.

Azure Monitoring Export

Manuell installation för Azure Monitor (valfritt)

Hoppa över om du har markerat "Aktivera appövervakning" under distributionen.

En Log Analytics-arbetsyta krävs för den här installationen. Om du inte har någon befintlig arbetsyta följer du den officiella guiden.

  1. Öppna Azure-portalen och gå till AppService-resursen där Mesh Cloud Scripting Service körs.

  2. Klicka på fliken Övervakning och rulla längst ned på sidan. Klicka på knappen "Konfigurera Azure Monitor"

    Fliken Övervakning av AppService

  3. Klicka på länken "+ Lägg till diagnostikinställning" för att ange de loggkategorier som ska skickas till den valda arbetsytan.

    Diagnostikinställningar

  4. I prompten fyller du i fältet "Namn på diagnostikinställning" och väljer sedan de loggkategorier som du är intresserad av (exempel: App Service Console-loggar, App Service-programloggar), markerar sedan kryssrutan "Skicka till Log Analytics-arbetsyta" och väljer sedan den befintliga Log Analytics-arbetsytan.

    Skapa diagnostikinställning

  5. Aktivera Application Insights från App Service-sidan. Detta säkerställer att loggarna sprids till Log Analytics-arbetsytan. Aktivera App Insights

  6. Fyll i formuläret och se till att peka det på samma arbetsyta som diagnostikinställningen skapades i.

    App Insights-formulär

  7. Starta om Din AppService och vänta några minuter. Du bör nu kunna köra frågor mot loggar i Azure Monitor enligt beskrivningen i avsnittet Azure Monitor.

Undersöka distributioner av molnskript i Azure

  1. På fliken Skapa miljö för mesh-uppladdare noterar du de prenumerations-ID och resursgruppsvärden som du har valt.

    _______________

  2. Gå till resursgruppen i Azure-portalen och i din valda prenumeration. Du kan antingen söka efter resursgruppens namn från sökfältet eller navigera till "Resursgrupper"-tjänsten och hitta resursgruppen där. Kontrollera att du är i rätt klientorganisation och prenumeration.

  3. I resursgruppens fönster "Inställningar" navigerar du till "Distributioner". Detta bör innehålla en lista över alla distributioner som har gjorts till resursgruppen.

  4. De distributioner av molnskript som är intressanta för dig är:

  • Appetablering: Det här är den första distributionskörningen och används för att etablera alla molnskriptresurser som krävs. Det kan identifieras med hjälp av provisionApp som ett filter i fönstret Distributioner.

  • Appinställningar: Detta skapar och uppdaterar webbappens inställningar. Det kan identifieras med hjälp av svc-appsettings som ett filter i fönstret Distributioner.

  • Inställningar för mellanlagringsapp: Detta skapar och uppdaterar webbappens mellanlagringsplats. Det kan identifieras med hjälp av svc-staging-appsettings som ett filter i fönstret Distributioner.

  • Appdistribution: Detta används för efterföljande infrastrukturändringar. Den distribuerar den senaste versionen av cloudhost docker-avbildningen till webbappens mellanlagringsplats. Detta kan identifieras med hjälp av deployApp som ett filter i fönstret Distributioner.

  • Byte av appfack: Detta växlar cloudhost docker-avbildningsversionerna som finns i webbappen och mellanlagringsplatsens webbapp. Detta kan identifieras med hjälp av deployApp-swap som ett filter i fönstret Distributioner.

    _______________

Om du vill se ytterligare information om distributionen klickar du på distributionsnamnet. Åtgärdsinformationen för varje resurstyp innehåller felmeddelandet som är relaterat till distributionen.

_______________

Här är ett exempel på en distribution som inte lyckades, inklusive orsaken till felet:

_______________

_______________

Efterföljande åtgärdsbara steg är beroende av de specifika felmeddelandena.

Så här rapporterar du problem

  1. Samla in alla tillgängliga loggar.
  2. Följ feedbackvägledningen .