Problembehandlung bei Cloud Scripting
Fehler beim Hochladen der Umgebung
Wenn eine Mesh Cloud Scripting-Phase während des Mesh Uploader-Prozesses fehlgeschlagen ist und der angezeigte Fehler "Protokolle auf weitere Informationen überprüfen" lautet, stellen Sie sicher, dass Infoprotokolle in der Unity-Konsole angezeigt werden. Derzeit werden einige Fehler als Infoprotokolle angezeigt. Dies wird in einer zukünftigen Version verbessert.
Fehler bei der Installation des Mesh Cloud Scripting-Pakets
- Wenn Fehler im Zusammenhang mit der Paketinstallation oder der .NET-Toolinstallation (
The tool package could not be restored
oderVerify your unity package integrity
) auftreten, vergewissern Sie sich, dass Sie keine ungültigen Paketquellen in Ihrer globalen NuGet-Konfiguration haben (unterC:\Users\<UserName>\AppData\Roaming\NuGet\NuGet.config
oder standardmäßiges NuGet-Konfigurationsverzeichnis, das auf dem Computer konfiguriert ist). - Wenn beim Starten des Wiedergabemodus der
package is already installed
Fehler auftritt, sollte der Wiedergabemodus beendet und erneut gestartet werden. - Überprüfen Sie die Zugriffsrechte für das Verzeichnis
Assets\.MeshCloudScripting\.Packages
.
Nachdem Sie die Schaltfläche "Unity Editor Wiedergeben" gedrückt haben, geschieht nichts.
- Überprüfen Sie die Unity-Protokolle auf Fehler. Wenn ihr Mesh Cloud Scripting-Code einen Kompilierungsfehler aufweist, wird in Ihrem Fehlerprotokoll "Cloud Scripting Build fehlgeschlagen" angezeigt. Öffnen Sie in diesem Fall die csproj-Datei für Ihr Mesh Cloud Scripting, und beheben Sie die Fehler. Wenn Sie aus Visual Studio erstellen, werden ihnen die Fehler in der Buildausgabe besser angezeigt.
- Wenn andere Fehler vorhanden sind, lesen Sie diese Seite, um weitere Informationen zur Problembehandlung zu bestimmten Fehlern zu erhalten.
- Wenn keine Fehler vorhanden sind, gibt es möglicherweise Laufzeitfehler im Mesh Cloud Scripting-Code. Fügen Sie die Anwendung mit dem Debugger an, und prüfen Sie die Ausgabe auf fehler.
- Wenn nichts hilft, melden Sie einen Fehler.
Wenn Sie an einem Ereignis in der Microsoft Mesh-Anwendung teilnehmen, funktioniert die Mesh Cloud Scripting nicht
- Stellen Sie sicher, dass die Szene erwartungsgemäß wiedergegeben wird, wenn Sie sie lokal in Unity anzeigen.
- Stellen Sie sicher, dass die bereitgestellte Umgebung mit der vom Mesh Cloud Scripting-Dienst verwendeten scene.map übereinstimmt.
- Navigieren Sie im Unity-Projekt zur Mesh Cloud Scripting-Komponente, und drücken Sie dann, um die Serialisierung des Szenendiagramms zu erzwingen
Serialize Scene
. - Laden Sie Ihre Umgebung mit dem Gitteruploader erneut hoch.
- Navigieren Sie im Unity-Projekt zur Mesh Cloud Scripting-Komponente, und drücken Sie dann, um die Serialisierung des Szenendiagramms zu erzwingen
- Testen Sie Ihre lokale Unity-Version mit dem bereitgestellten Dienst.
- Überprüfen Sie die Protokolle in Unity auf Fehler, wenn sie nicht funktionieren.
- Wenn nichts hilft, melden Sie einen Fehler.
- Prüfen Sie die Protokolle von Mesh Cloud Scripting , und fügen Sie relevante Informationen, sofern möglich, in Ihren Fehlerbericht ein.
Klicks werden nicht empfangen
- Es ist möglich, dass Ihr Mesh Cloud Scripting Service Nachrichten mit zu hoher Häufigkeit sendet, damit das System verarbeitet werden kann. In diesem Fall wird Ihr Klick möglicherweise tatsächlich empfangen, aber aufgrund eines großen Backlogs von Nachrichten dauert es lange, bis das Ergebnis wieder an den Client weitergegeben wird. Versuchen Sie, den Hochfrequenzupdatecode vorübergehend zu deaktivieren, um festzustellen, ob das Problem dadurch behoben wird. Wenn dies der Fall ist, ziehen Sie in Betracht, Unity Animators zu fahren, anstatt Eigenschaften aus Mesh Cloud Scripting zu aktualisieren.
- Wenn nichts hilft, melden Sie einen Fehler.
Unity wird eingefroren, nachdem Sie die Wiedergabe gedrückt haben.
Wenn Sie den Fokus von Unity zu einer anderen App wechseln, 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 setzen, wird er angehalten, bis er die Warteschlange vollständig entwässert. Wenn der Mesh Cloud Scripting Service viele häufige Zustandsänderungen vornimmt und/oder Sie den Fokus seit langem von Unity entfernt haben, kann Unity einige Zeit lang fixieren.
So werden Protokolle gesammelt
Sammeln von Unity-Protokollen
Legen Sie vor dem Melden eines Problems die Ausführlichkeit auf Diagnose fest.
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.log
.
Sammeln von Clientprotokollen aus der Microsoft Mesh-Anwendung
Konfigurieren Sie die PC-Clientprotokolle, indem Sie eine Datei auf dem Desktop namens "startup_settings.json" mit dem folgenden 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\Microsoft Mesh\Player.log
Sammeln von Serverprotokollen
A. Protokollstream
I. Anmelden von Stream im Azure-Portal
Wenn Sie Protokolle vom Mesh Cloud Scripting Service anzeigen möchten, klicken Sie im Abschnitt "Überwachung " der AppService-Ressource auf das Menü "Protokolldatenstrom ", um Protokolle aus dem Container anzuzeigen, wie in der abbildung unten dargestellt.
II. Protokollieren von Stream über Azure CLI
Wenn Sie die Azure CLI auf Ihrem lokalen Computer installiert haben, können Sie auch die gleichen Protokolle von Ihrem lokalen Computer aus ausführen, 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 Abschnitt "Entwicklungstools" im linken Bereich nach erweiterten Tools, und klicken Sie dann auf die Schaltfläche "Gehe zu".
Die SCM-Website wird geöffnet, und Sie können dann die Docker-Protokolle als ZIP-Datei herunterladen, wie unten dargestellt.
B. Azure Monitor
Alternativ können Sie mithilfe von Azure Monitor KQL-Abfragen (Kusto-Abfragesprache) schreiben, um Protokolle herauszusuchen, an denen Sie besonders interessiert sind, von Ereignissen, Zeitbereichen und mehr. Dies wäre 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" die Option "Protokolle" aus.
Im Abfrageüberwachungsbereich können Sie die Protokolle auswählen, die Sie interessieren. Zum Zeitpunkt des Schreibens haben wir "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.
Geben Sie im 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")
Exportieren von Daten in csv.
Manuelles Setup für Azure Monitor (optional)
Überspringen Sie, wenn Sie während der Bereitstellung "App-Überwachung aktivieren" aktiviert haben.
Für diese Einrichtung ist ein Log Analytics-Arbeitsbereich erforderlich. Wenn Sie nicht über einen vorhandenen Arbeitsbereich verfügen, folgen Sie dem offiziellen Leitfaden.
Öffnen Sie Das Azure-Portal, und navigieren Sie zu der AppService-Ressource, in der Ihr Mesh Cloud Scripting Service ausgeführt wird.
Klicken Sie auf die Registerkarte "Überwachung", und scrollen Sie nach unten auf der Seite. Klicken Sie auf die Schaltfläche "Azure Monitor konfigurieren".
Klicken Sie auf den Link "+ Diagnoseeinstellung hinzufügen", um die Protokollkategorien festzulegen, die an Ihren ausgewählten Arbeitsbereich gesendet werden.
Füllen Sie in der Eingabeaufforderung das Feld "Diagnoseeinstellungsname" aus, und wählen Sie dann die Protokollkategorien aus, die Sie interessieren (Beispiele: App Service Console Logs, App Service Application Logs), und aktivieren Sie dann das Kontrollkästchen "An Log Analytics-Arbeitsbereich senden", und wählen Sie dann Ihren bevorzugten vorhandenen Log Analytics-Arbeitsbereich aus.
Aktivieren Sie Application Insights auf der App Service-Seite. Dadurch wird sichergestellt, dass Protokolle an den Log Analytics-Arbeitsbereich weitergegeben werden.
Füllen Sie das Formular aus, und zeigen Sie es unbedingt auf denselben Arbeitsbereich, in dem Ihre Diagnoseeinstellung erstellt wurde.
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
Notieren Sie sich auf der Registerkarte "Gitteruploader Erstellen von Umgebung " die von Ihnen ausgewählten Werte " Abonnement-ID " und "Ressourcengruppe ".
Navigieren Sie im Azure-Portal und in Ihrem ausgewählten Abonnement zur Ressourcengruppe. Sie können entweder über die 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.
Navigieren Sie im Bereich "Einstellungen" der Ressourcengruppe zu "Bereitstellungen". Dies sollte eine Liste aller Bereitstellungen enthalten, die an der Ressourcengruppe vorgenommen wurden.
Die Cloud Scripting-Bereitstellungen, die für Sie von Interesse sind:
App-Bereitstellung: Dies ist die erste Bereitstellungsausführung und wird verwendet, um alle erforderlichen Cloudskriptingressourcen bereitzustellen. Sie kann mithilfe von provisionApp als Filter im Bereitstellungsfenster identifiziert werden.
App-Einstellungen: Dadurch werden die Einstellungen der Web-App erstellt und aktualisiert. Sie kann mithilfe von svc-appsettings als Filter im Bereitstellungsfenster identifiziert werden.
Staging-App-Einstellungen: Dadurch wird der Stagingplatz der Web-App erstellt und aktualisiert. Sie kann mithilfe von svc-staging-appsettings als Filter im Bereitstellungsfenster identifiziert werden.
App-Bereitstellung: Dies wird für nachfolgende Infrastrukturänderungen verwendet. Es stellt die neueste Version des Cloudhost-Docker-Images im Staging-Slot der Web-App bereit. Dies kann mithilfe von deployApp als Filter im Fenster "Bereitstellungen" identifiziert werden.
Swapping von App-Slots: Dadurch werden die Cloudhost-Docker-Imageversionen in der Web-App und in der Staging-Web-App ausgetauscht. Dies kann mithilfe von deployApp-swap als Filter im Bereitstellungsfenster identifiziert werden.
Wenn Sie weitere Details zu der Bereitstellung anzeigen möchten, klicken Sie auf den Bereitstellungsnamen. Die Vorgangsdetails für jeden Ressourcentyp enthalten die Fehlermeldung im Zusammenhang mit der Bereitstellung.
Hier ist ein Beispiel für eine Bereitstellung, die nicht erfolgreich war, einschließlich der Ursache des Fehlers:
Nachfolgende Aktionen erfordernde Schritte sind von den spezifischen Fehlermeldungen abhängig.
Melden von Problemen
- Sammeln Sie alle verfügbaren Protokolle.
- Folgen Sie feedback-Anleitungen .