Freigeben über


Cloud Scripting– Problembehandlung

Fehler beim Hochladen der Umgebung

Wenn bei einer Mesh Cloud Scripting-Phase während des Mesh-Uploaders ein Fehler aufgetreten ist und der angezeigte Fehler "Überprüfen Sie die Protokolle auf weitere Informationen" angezeigt wird, stellen Sie sicher, dass Infoprotokolle in der Unity-Konsole angezeigt werden. Derzeit werden einige Fehler als Infoprotokolle angezeigt. Dies wird in einem zukünftigen Release verbessert.

Fehler bei der Installation des Mesh-Cloudskriptpakets

  1. Wenn Fehler im Zusammenhang mit der Paketinstallation oder der Installation des .NET-Tools (The tool package could not be restored oder Verify your unity package integrity) auftreten, vergewissern Sie sich, dass Sie keine ungültigen Paketquellen in Ihrer globalen NuGet-Konfiguration haben (unter oder unter C:\Users\<UserName>\AppData\Roaming\NuGet\NuGet.config dem Standard-NuGet-Konfigurationsverzeichnis, das auf dem Computer konfiguriert ist).
  2. Wenn beim Starten des Wiedergabemodus der package is already installed Fehler auftritt, sollte dies durch Beenden des Wiedergabemodus und erneutes Starten behoben werden.
  3. Überprüfen Sie die Zugriffsrechte für das Verzeichnis Assets\.MeshCloudScripting\.Packages.

Nach dem Drücken der Schaltfläche "Unity Editor Play" geschieht nichts.

  1. Überprüfen Sie Unity-Protokolle auf Fehler. Insbesondere wenn ihr Mesh Cloud Scripting-Code einen Kompilierfehler aufweist, wird "Fehler beim Cloud Scripting-Build" in Ihrem Fehlerprotokoll angezeigt. Öffnen Sie in diesem Fall die Datei csproj für Ihr Mesh Cloud Scripting, und beheben Sie die Fehler. Wenn Sie von Visual Studio aus erstellen, werden die Fehler in der Buildausgabe bequemer angezeigt.
  2. Wenn andere Fehler auftreten, finden Sie auf dieser Seite weitere Informationen zur Problembehandlung für bestimmte Fehler.
  3. Wenn keine Fehler vorliegen, liegen möglicherweise Laufzeitfehler in Ihrem Mesh Cloud Scripting-Code vor. Fügen Sie mit dem Debugger an Ihre Anwendung an, und überprüfen Sie die Ausgabe auf Fehler.
  4. Wenn nichts hilft, melden Sie einen Fehler.

Beim Beitreten zu einem Ereignis in der Microsoft Mesh-Anwendung funktioniert das Mesh Cloud Scripting nicht.

  1. Stellen Sie sicher, dass die Szene wie erwartet wiedergegeben wird, wenn Sie sie lokal in Unity in der Vorschau anzeigen.
  2. Stellen Sie sicher, dass die bereitgestellte Umgebung mit der vom Mesh Cloud Scripting-Dienst verwendeten Scene.map übereinstimmt.
    1. Navigieren Sie im Unity-Projekt zur Komponente Mesh Cloud Scripting , und drücken Serialize Scene Sie dann, um die Szenendiagrammserialisierung zu erzwingen.
    2. Laden Sie Ihre Umgebung mit dem Mesh-Uploader erneut hoch.
  3. Testen Sie Ihre lokale Unity-Version mit dem bereitgestellten Dienst.
    • Überprüfen Sie die Protokolle in Unity auf Fehler, wenn sie nicht funktionieren.
  4. Wenn nichts hilft, melden Sie einen Fehler.

Klicks werden nicht empfangen.

  1. Es ist möglich, dass Ihr Mesh Cloud Scripting Service Nachrichten zu einer zu hohen Häufigkeit sendet, damit das System es verarbeiten kann. In diesem Fall wird Ihr Klick möglicherweise tatsächlich empfangen, aber aufgrund eines großen Rückstaus an Nachrichten dauert es lange, bis das Ergebnis wieder an den Client weitergegeben wird. Versuchen Sie, den Hochfrequenz-Updatecode vorübergehend zu deaktivieren, um festzustellen, ob das Problem dadurch behoben wird. Wenn dies der Fall ist, sollten Sie in Erwägung ziehen, zu Unity-Animatoren zu wechseln, anstatt Eigenschaften aus Mesh Cloud Scripting zu aktualisieren.
  2. Wenn nichts hilft, melden Sie einen Fehler.

Unity friert ein, nachdem Sie auf Wiedergabe geklickt haben.

Wenn Sie den Fokus von Unity auf eine andere App umschalten, während Unity wiedergegeben wird, wird der Mesh Cloud Scripting Service weiterhin ausgeführt und übermittelt Nachrichten an die Nachrichtenwarteschlange. Wenn Sie den Fokus wieder auf Unity umstellen, wird er angehalten, bis die Warteschlange vollständig entleert wird. Wenn der Mesh Cloud Scripting Service viele häufige Zustandsänderungen vornimmt und/oder Sie den Fokus für eine lange Zeit von Unity entfernt haben, kann Unity für einige Zeit einfrieren, während dies geschieht.

So werden Protokolle gesammelt

Sammeln von Unity-Protokollen

Legen Sie vor dem Melden eines Problems Ausführlichkeit auf Diagnose fest.

Diagnoseprotokollkonfiguration

Reproduzieren Sie das Problem, und senden Sie dann die Unity-Protokolle. Sie finden die Protokolldatei über das Unity-Menü, das standardmäßig unter %LOCALAPPDATA%\Unity\Editor\Editor.loggespeichert ist.

Sammeln von Unity-Protokollen

Sammeln von Clientprotokollen aus der Microsoft Mesh-Anwendung

Konfigurieren Sie die PC-Clientprotokolle, indem Sie auf dem Desktop eine Datei mit dem Namen "startup_settings.json" mit folgendem Inhalt erstellen:

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

Reproduzieren Sie das Problem, und geben Sie dann die Unity-Protokolle weiter. Microsoft Mesh-Anwendungsprotokolle finden Sie unter %USERPROFILE%\AppData\LocalLow\Microsoft Corporation\Microsoft Mesh\player.log

Sammeln von Serverprotokollen

A. Protokollstream

I. Protokollieren Stream im Azure-Portal

Um Protokolle aus dem Mesh Cloud Scripting Service anzuzeigen, klicken Sie im Abschnitt Überwachung der AppService-Ressource auf das Menü Protokoll Stream, um Protokolle aus dem Container anzuzeigen, wie in der folgenden Abbildung dargestellt.

Protokoll Stream Wählen Sie.

II. Protokollieren von Stream über die Azure CLI

Wenn Sie die Azure CLI auf Ihrem lokalen Computer installiert haben, können Sie diese Protokolle auch von Ihrem lokalen Computer aus erstellen, indem Sie den folgenden Befehl in Ihrem Terminal ausführen:

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

III. Herunterladen der Protokolle als ZIP-Datei

Sie können auch Protokolldateien aus dem gehosteten App-Dienst herunterladen, indem Sie zu Den erweiterten Tools (Kudu) wechseln. Suchen Sie im linken Bereich im Abschnitt "Entwicklungstools"nach Erweiterten Tools , und klicken Sie dann auf die Schaltfläche Gehe zu .

AppService Advanced Tools

Die SCM-Website wird geöffnet, und Sie können dann die Docker-Protokolle wie unten gezeigt als ZIP-Datei herunterladen.

Kudu

B. Azure Monitor

Alternativ können Sie mit Azure Monitor KQL-Abfragen (Kusto-Abfragesprache) schreiben, um Protokolle, die Sie besonders interessieren, aus Ereignissen, Zeitbereichen und mehr herauszuwählen. Dies wird automatisch für Sie eingerichtet, wenn Sie während der Bereitstellung das Kontrollkästchen "App-Überwachung aktivieren" aktiviert haben. Wenn nicht, lesen Sie den Abschnitt manuelle Einrichtung für Azure Monitor , um Azure Monitor für Ihre Bereitstellung zu konfigurieren.

Um dies zu verwenden, wählen Sie im Abschnitt Überwachung des Navigationsbereichs Protokolle aus.

AppService-Überwachung

Im Abfragebereich Überwachung können Sie die Protokolle auswählen, die Sie interessieren. Zum Zeitpunkt des Schreibens verfügen wir über "AppServiceConsoleLogs", "AppServiceHTTPLogs", "AppServiceAppLogs" und "AppServicePlatformLogs". Um die Protokolle aus dem Docker-Container anzuzeigen, finden Sie möglicherweise die Protokolle in "AppServiceAppLogs" und/oder "AppServiceConsoleLogs" nützlicher.

Azure-Überwachungsbereich

Geben Sie in das Textfeld auf der rechten Seite des Menüs Tabellen die folgende KQL-Abfrage ein:

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

Azure Monitoring Input Field

Exportieren von Daten in csv.

Azure Monitoring Export Azure

Manuelles Setup für Azure Monitor (optional)

Überspringen Sie, wenn Sie während der Bereitstellung "App-Überwachung aktivieren" aktiviert haben.

Für dieses Setup ist ein Log Analytics-Arbeitsbereich erforderlich. Wenn Sie nicht über einen vorhandenen Arbeitsbereich verfügen, folgen Sie der offiziellen Anleitung.

  1. Öffnen Sie das Azure-Portal, und navigieren Sie zu der AppService-Ressource, in der Ihr Mesh Cloud Scripting Service ausgeführt wird.

  2. Klicken Sie auf die Registerkarte "Überwachung", und scrollen Sie zum Ende der Seite. Klicken Sie auf die Schaltfläche "Azure Monitor konfigurieren".

    Registerkarte

  3. Klicken Sie auf den Link "+ Diagnoseeinstellung hinzufügen", um die Protokollkategorien festzulegen, die an den ausgewählten Arbeitsbereich gesendet werden.

    Diagnoseeinstellungen

  4. Füllen Sie in der Eingabeaufforderung das Feld "Name der Diagnoseeinstellung" aus, wählen Sie dann die Protokollkategorien aus, die Sie interessieren (Beispiele: App Service Konsolenprotokolle, App Service Anwendungsprotokolle), aktivieren Sie dann das Kontrollkästchen "An Log Analytics-Arbeitsbereich senden", und wählen Sie dann Ihren bevorzugten vorhandenen Log Analytics-Arbeitsbereich aus.

    Diagnoseeinstellung erstellen

  5. Aktivieren Sie Application Insights auf der Seite App Service. Dadurch wird sichergestellt, dass Protokolle an den Log Analytics-Arbeitsbereich weitergegeben werden. Aktivieren von App Insights

  6. Füllen Sie das Formular aus, und verweisen Sie auf den gleichen Arbeitsbereich, in dem Ihre Diagnoseeinstellung erstellt wurde.

    App Insights-Formular

  7. Starten Sie AppService neu, und warten Sie einige Minuten. Sie sollten jetzt in der Lage sein, Protokolle in Azure Monitor abzufragen, wie im Abschnitt Azure Monitor beschrieben.

Untersuchen von Cloud Scripting-Bereitstellungen in Azure

  1. Notieren Sie sich auf der Registerkarte Netzwerkuploader Umgebung erstellen die von Ihnen ausgewählten Werte für Abonnement-ID und Ressourcengruppe .

    _______________

  2. Navigieren Sie im Azure-Portal und in Ihrem ausgewählten Abonnement zur Ressourcengruppe. Sie können entweder in der Suchleiste nach dem Namen der Ressourcengruppe suchen oder zum Dienst "Ressourcengruppen" navigieren und dort Ihre Ressourcengruppe finden. Stellen Sie sicher, dass Sie sich im richtigen Mandanten und Abonnement befinden.

  3. Navigieren Sie im Bereich "Einstellungen" der Ressourcengruppe zu "Bereitstellungen". Dies sollte eine Liste aller Bereitstellungen enthalten, die für die Ressourcengruppe vorgenommen wurden.

  4. Die Für Sie interessanten Cloud Scripting-Bereitstellungen sind:

  • App-Bereitstellung: Dies ist die erste Bereitstellungsausführung, die zum Bereitstellen aller erforderlichen Cloudskriptressourcen verwendet wird. Sie kann identifiziert werden, indem Sie provisionApp als Filter im Fenster Bereitstellungen verwenden.

  • App-Einstellungen: Dadurch werden die Einstellungen der Web-App erstellt und aktualisiert. Sie kann mithilfe von svc-appsettings als Filter im Fenster Bereitstellungen identifiziert werden.

  • Staging-App-Einstellungen: Dadurch wird der Stagingslot der Web-App erstellt und aktualisiert. Sie kann mithilfe von svc-staging-appsettings als Filter im Fenster Bereitstellungen identifiziert werden.

  • App-Bereitstellung: Dies wird für nachfolgende Infrastrukturänderungen verwendet. Es stellt die neueste Version des Cloudhost-Docker-Images im Stagingslot der Web-App bereit. Dies kann identifiziert werden, indem Sie deployApp als Filter im Fenster Bereitstellungen verwenden.

  • Austauschen von App-Slots: Dadurch werden die Cloudhost-Docker-Imageversionen ausgetauscht, die in der Web-App und in der Web-App des Stagingslots vorhanden sind. Dies kann identifiziert werden, indem Sie deployApp-swap als Filter im Fenster Bereitstellungen verwenden.

    _______________

Um weitere Details zur Bereitstellung anzuzeigen, klicken Sie auf den Bereitstellungsnamen. Die Vorgangsdetails für jeden Ressourcentyp enthalten die Fehlermeldung im Zusammenhang mit der Bereitstellung.

_______________

Hier sehen Sie ein Beispiel für eine Bereitstellung, die nicht erfolgreich war, einschließlich der Ursache des Fehlers:

_______________

_______________

Nachfolgende umsetzbare Schritte sind von den spezifischen Fehlermeldungen abhängig.

Melden von Problemen

  1. Sammeln Sie alle verfügbaren Protokolle.
  2. Befolgen Sie die Feedbackanleitungen .