Problemen met cloudscripts oplossen
Uploaden van omgeving is mislukt
Als een Mesh Cloud Scripting-fase tijdens het Mesh Uploader-proces is mislukt en de weergegeven fout 'Controleer de logboeken voor meer informatie', controleert u of infologboeken worden weergegeven in de Unity-console. Er worden momenteel enkele fouten weergegeven als informatielogboeken. Dit wordt verbeterd in een toekomstige release.
Installatie van mesh-cloudscriptpakket is mislukt
- Als er fouten optreden met betrekking tot pakketinstallatie of .NET-hulpprogramma-installatie (
The tool package could not be restored
ofVerify your unity package integrity
), controleert u of u geen ongeldige pakketbronnen hebt in uw globale NuGet-configuratie (onderC:\Users\<UserName>\AppData\Roaming\NuGet\NuGet.config
of standaard NuGet-configuratiemap die is geconfigureerd op de computer). - Als er een fout optreedt bij het starten van de
package is already installed
Afspeelmodus, sluit u de Afspeelmodus af en start u deze opnieuw. - Controleer de toegangsrechten op de map
Assets\.MeshCloudScripting\.Packages
.
Nadat u op de knop Play van de Unity Editor hebt gedrukt, gebeurt er niets
- Controleer unity-logboeken op eventuele fouten. Als uw Mesh Cloud Scripting-code een compileerfout heeft, ziet u met name 'Build voor cloudscripting is mislukt' in het foutenlogboek. Open in dit geval het csproj-bestand voor uw Mesh Cloud Scripting en corrigeer de fouten. Als u bouwt vanuit Visual Studio, worden de fouten handiger weergegeven in de build-uitvoer.
- Als er andere fouten zijn, raadpleegt u deze pagina voor aanvullende informatie over het oplossen van problemen met bepaalde fouten.
- Als er geen fouten zijn, zijn er mogelijk runtimefouten in uw Mesh Cloud Scripting-code. Koppel deze aan uw toepassing met het foutopsporingsprogramma en inspecteer de uitvoer op eventuele fouten.
- Als er niets helpt, meldt u een bug.
Wanneer u deelneemt aan een gebeurtenis in de Microsoft Mesh-toepassing, werkt de Mesh Cloud Scripting niet
- Zorg ervoor dat de scène wordt afgespeeld zoals verwacht wanneer u een voorbeeld van de scène lokaal bekijkt in Unity.
- Zorg ervoor dat de geïmplementeerde omgeving overeenkomt met de scene.map die wordt gebruikt door de Mesh Cloud Scripting-service.
- Navigeer in het Unity-project naar het Mesh Cloud Scripting-onderdeel en druk vervolgens
Serialize Scene
om serialisatie van scènegrafieken af te dwingen. - Upload uw omgeving opnieuw met de Mesh Uploader.
- Navigeer in het Unity-project naar het Mesh Cloud Scripting-onderdeel en druk vervolgens
- Test uw lokale Unity-versie op basis van de geïmplementeerde service.
- Controleer de logboeken in Unity op fouten als deze niet werken.
- Als er niets helpt, meldt u een bug.
- Inspecteer Mesh Cloud Scripting-logboeken en neem waar mogelijk relevante informatie op in uw foutenrapport.
Klikken worden niet ontvangen
- Het is mogelijk dat uw Mesh Cloud Scripting Service berichten verzendt met een te hoge frequentie voor het systeem. In dit geval kan uw klik daadwerkelijk worden ontvangen, maar vanwege een grote achterstand in berichten duurt het lang voordat het resultaat wordt doorgegeven aan de client. Probeer tijdelijk de code voor het bijwerken van hoge frequentie uit te schakelen om te zien of dit het probleem oplost. Als dit het geval is, kunt u overwegen om Unity Resources te verplaatsen in plaats van eigenschappen van Mesh Cloud Scripting bij te werken.
- Als er niets helpt, meldt u een bug.
Unity wordt geblokkeerd nadat u op Play drukt
Als u de focus overschakelt van Unity naar een andere app terwijl Unity wordt afgespeeld, blijft de Mesh Cloud Scripting Service actief en worden berichten naar de berichtenwachtrij verzonden. Wanneer u de focus terugzet naar Unity, wordt de focus onderbroken totdat de wachtrij volledig leeg is. Als de Mesh Cloud Scripting Service veel frequente statuswijzigingen aanbrengt en/of u de focus al lange tijd van Unity hebt verplaatst, kan Unity enige tijd blokkeren terwijl dit gebeurt.
Instructies voor het verzamelen van logboeken
Unity-logboeken verzamelen
Voordat u een probleem meldt, stelt u Uitgebreidheid in op Diagnostisch.
Reproduceer het probleem en verzend de Unity-logboeken. U kunt het logboekbestand vinden met behulp van het Unity-menu, dat standaard is opgeslagen op %LOCALAPPDATA%\Unity\Editor\Editor.log
.
Clientlogboeken verzamelen uit de Microsoft Mesh-toepassing
Configureer de pc-clientlogboeken door een bestand op het bureaublad met de naam 'startup_settings.json' te maken met de volgende inhoud:
{
"use_startup_settings": true,
"log_groups": [
{ "name": "CloudScriptingClientSDK", "level": "Debug" },
{ "name": "CloudScriptingUnityRuntime", "level": "Debug" }
]
}
Reproduceer het probleem en deel de Unity-logboeken. Microsoft Mesh-toepassingslogboeken vindt u op %USERPROFILE%\AppData\LocalLow\Microsoft\Microsoft Mesh\Player.log
Serverlogboeken verzamelen
A. Logboekstream
i. Logboekstream in Azure Portal
Als u logboeken van de Mesh Cloud Scripting Service wilt zien, klikt u in de sectie Bewaking van de AppService-resource op het menu Logboekstream om logboeken van de container weer te geven, zoals wordt weergegeven in de onderstaande afbeelding.
II. Logboekstream via Azure CLI
Als u de Azure CLI op uw lokale computer hebt geïnstalleerd, kunt u ook dezelfde logboeken van uw lokale computer weergeven door de volgende opdracht uit te voeren in uw terminal:
az webapp log tail --name <APP_SERVICE_NAME> --resource-group <RESOURCE_GROUP_NAME>
III. De logboeken downloaden als zip-bestand
U kunt ook logboekbestanden downloaden uit de gehoste app-service door naar de Geavanceerde hulpprogramma's (Kudu) te gaan. Ga in de sectie Ontwikkelhulpprogramma's van het linkerdeelvenster naar Geavanceerde hulpprogramma's en klik vervolgens op de knop Start.
De SCM-website wordt geopend en u kunt vervolgens de Docker-logboeken downloaden als een Zip-bestand, zoals hieronder wordt weergegeven.
B. Azure Monitor
U kunt ook KQL-query's (Kusto-querytaal) schrijven om logboeken te kiezen waarin u vooral geïnteresseerd bent in gebeurtenissen, tijdsbereiken en meer. Dit wordt automatisch voor u ingesteld als u het selectievakje App-bewaking inschakelen hebt ingeschakeld tijdens de implementatie. Zo niet, raadpleegt u de sectie Handmatig instellen voor Azure Monitor om Azure Monitor voor uw implementatie te configureren.
Als u dit wilt gebruiken, selecteert u Logboeken in de sectie Bewaking van het navigatiedeelvenster.
In het deelvenster Querybewaking kunt u de logboeken selecteren waarin u geïnteresseerd bent. Op het moment van schrijven hebben we 'AppServiceConsoleLogs', 'AppServiceHTTPLogs', 'AppServiceAppLogs' en 'AppServicePlatformLogs'. Als u de logboeken uit de Docker-container wilt bekijken, zijn de logboeken mogelijk nuttiger in AppServiceAppLogs en/of AppServiceConsoleLogs.
Typ in het tekstvak aan de rechterkant van het menu Tabellen de volgende KQL-query:
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")
Gegevens exporteren naar CSV.
Handmatig instellen voor Azure Monitor (optioneel)
Sla over als u 'App-bewaking inschakelen' hebt ingeschakeld tijdens de implementatie.
Voor deze installatie is een Log Analytics-werkruimte vereist. Als u geen bestaande werkruimte hebt, volgt u de officiële handleiding.
Open Azure Portal en navigeer naar de AppService-resource waarin uw Mesh Cloud Scripting Service wordt uitgevoerd.
Klik op het tabblad Bewaking en schuif naar de onderkant van de pagina. Klik op de knop Azure Monitor configureren
Klik op de koppeling + Diagnostische instelling toevoegen om de logboekcategorieën in te stellen die naar uw gekozen werkruimte worden verzonden.
Vul in de prompt het veld Diagnostische instellingsnaam in en selecteer vervolgens de logboekcategorieën waarin u geïnteresseerd bent (voorbeelden: App Service-consolelogboeken, App Service-toepassingslogboeken), schakel het selectievakje 'Verzenden naar Log Analytics-werkruimte' in en selecteer vervolgens de gewenste bestaande Log Analytics-werkruimte.
Schakel Application Insights in vanaf de App Service-pagina. Dit zorgt ervoor dat logboeken worden doorgegeven aan de Log Analytics-werkruimte.
Vul het formulier in en wijs het aan op dezelfde werkruimte waarin uw diagnostische instelling is gemaakt.
Start uw AppService opnieuw op en wacht enkele minuten. U kunt nu query's uitvoeren op logboeken in Azure Monitor, zoals beschreven in de sectie Azure Monitor.
Cloudscriptimplementaties onderzoeken in Azure
Noteer op het tabblad Mesh Uploader Omgeving maken de abonnements-id en de resourcegroepwaarden die u hebt gekozen.
Navigeer in Azure Portal en in uw geselecteerde abonnement naar de resourcegroep. U kunt in de zoekbalk naar de naam van de resourcegroep zoeken of naar de service Resourcegroepen gaan en daar uw resourcegroep zoeken. Zorg ervoor dat u zich in de juiste tenant en het juiste abonnement bevindt.
Navigeer in het deelvenster Instellingen van de resourcegroep naar Implementaties. Dit moet een lijst bevatten met alle implementaties die zijn aangebracht in de resourcegroep.
De cloudscriptimplementaties die voor u van belang zijn, zijn:
App-inrichting: dit is de eerste implementatieuitvoering en wordt gebruikt om alle vereiste resources voor cloudscripts in te richten. Deze kan worden geïdentificeerd met behulp van provisionApp als filter in het venster Implementaties.
App-instellingen: hiermee worden de instellingen van de web-app gemaakt en bijgewerkt. Deze kan worden geïdentificeerd met behulp van svc-appsettings als filter in het venster Implementaties.
Instellingen voor faserings-apps: hiermee maakt en werkt u de staging-site van de web-app bij. Deze kan worden geïdentificeerd met behulp van svc-staging-appsettings als filter in het venster Implementaties.
App-implementatie: dit wordt gebruikt voor volgende wijzigingen in de infrastructuur. Hiermee wordt de nieuwste versie van de docker-installatiekopieën van de cloudhost geïmplementeerd in de staging-site van de web-app. Dit kan worden geïdentificeerd door deployApp te gebruiken als filter in het venster Implementaties.
App-sites wisselen: hiermee worden de versies van de Docker-installatiekopieën van de cloudhost in de web-app en de staging-site-web-app gewisseld. Dit kan worden geïdentificeerd door deployApp-swap te gebruiken als filter in het venster Implementaties.
Als u meer informatie over de implementatie wilt zien, klikt u op de naam van de implementatie. De bewerkingsgegevens voor elk resourcetype bevatten het foutbericht met betrekking tot de implementatie.
Hier volgt een voorbeeld van een implementatie die niet is geslaagd, inclusief de oorzaak van de fout:
Volgende actiestappen zijn afhankelijk van de specifieke foutberichten.
Problemen melden
- Verzamel alle beschikbare logboeken.
- Volg de feedbackrichtlijnen .