Řešení potíží s cloudovým skriptováním
Nahrání prostředí se nezdařilo
Pokud během procesu nahrání sítě selže fáze skriptování mesh cloudu a zobrazí se chyba Kontrola dalších informací v protokolech, ujistěte se, že se v konzole Unity zobrazují protokoly informací. V současné době se některé chyby zobrazují jako informační protokoly. V budoucí verzi se to zlepší.
Instalace balíčku cloudových skriptů mesh se nezdařila.
- Pokud dojde k chybám souvisejícím s instalací balíčku nebo instalací nástroje .NET (
The tool package could not be restored
neboVerify your unity package integrity
), ověřte, že nemáte v globální konfiguraci NuGetu platné zdroje balíčků (v rámciC:\Users\<UserName>\AppData\Roaming\NuGet\NuGet.config
výchozího konfiguračního adresáře NuGet, který je nakonfigurovaný na počítači). - Pokud při spuštění režimu přehrávání dojde k
package is already installed
chybě, ukončení režimu přehrávání a jeho opětovné spuštění by se mělo zmírnit. - Ověřte přístupová práva v adresáři
Assets\.MeshCloudScripting\.Packages
.
Po stisknutí tlačítka Přehrát v Unity Editoru se nic nestane.
- Zkontrolujte případné chyby v protokolech Unity. Konkrétně platí, že pokud kód skriptování cloudu Mesh obsahuje chybu kompilace, zobrazí se v protokolu chyb zpráva o tom, že sestavení cloudových skriptů selhalo. V tomto případě otevřete soubor csproj pro váš Mesh Cloud Scripting a opravte chyby. Pokud sestavujete ze sady Visual Studio, zobrazí se chyby pohodlněji ve výstupu sestavení.
- Pokud dojde k jiným chybám, projděte si tuto stránku, kde najdete další informace o řešení potíží s konkrétními chybami.
- Pokud nedojde k žádným chybám, můžou se v kódu Cloud Scripting služby Mesh vyskytovat chyby za běhu. Připojte se k aplikaci pomocí ladicího programu a zkontrolujte případné chyby ve výstupu.
- Pokud nic nepomůže, nahlaste chybu.
Při připojování k události v aplikaci Microsoft Mesh nefunguje skriptování Cloud Mesh.
- Ujistěte se, že se scéna přehrává podle očekávání, když ji zobrazíte místně v Unity.
- Ujistěte se, že nasazené prostředí odpovídá scéně.map používané službou Mesh Cloud Scripting.
- V projektu Unity přejděte do komponenty Mesh Cloud Scripting a stisknutím klávesy vynuťte
Serialize Scene
serializaci grafu scény. - Znovu nahrajte prostředí pomocí nástroje Mesh Uploader.
- V projektu Unity přejděte do komponenty Mesh Cloud Scripting a stisknutím klávesy vynuťte
- Otestujte místní verzi Unity na nasazené službě.
- V protokolech v Unity zkontrolujte případné chyby, pokud nefungují.
- Pokud nic nepomůže, nahlaste chybu.
- Prozkoumejte protokoly skriptování cloudu Mesh a uveďte relevantní informace, pokud je to možné ve zprávě o chybách.
Kliknutí se nepřijímají.
- Je možné, že vaše cloudová skriptovací služba Mesh odesílá zprávy s příliš vysokou frekvencí, aby systém zpracovával. V takovém případě může dojít k přijetí kliknutí, ale vzhledem k velkému backlogu zpráv trvá dlouho, než se výsledek rozšíří zpět do klienta. Zkuste dočasně zakázat kód aktualizace s vysokou frekvencí, abyste zjistili, jestli se tím problém nevyřeší. Pokud ano, zvažte přesun na jednotku Animátorů Unity místo aktualizace vlastností ze služby Mesh Cloud Scripting.
- Pokud nic nepomůže, nahlaste chybu.
Unity se po stisknutí tlačítka Přehrát zablokuje.
Pokud při přehrávání Unity přepnete fokus z Unity na jinou aplikaci, služba Mesh Cloud Scripting Service se bude dál spouštět a odesílá zprávy do fronty zpráv. Když přepnete fokus zpět na Unity, pozastaví se, dokud se fronta úplně vyprázdní. Pokud služba skriptování cloudu Mesh provádí spoustu častých změn stavu nebo jste se na dlouhou dobu od Unity odpojili od Unity, může Unity nějakou dobu ukotvit.
Shromažďování protokolů
Shromažďování protokolů Unity
Před nahlášením problému nastavte úroveň Podrobností na diagnostiku.
Reprodukujte problém a pak odešlete protokoly Unity. Soubor protokolu najdete pomocí nabídky Unity, která je ve výchozím nastavení uložena .%LOCALAPPDATA%\Unity\Editor\Editor.log
Shromažďování protokolů klienta z aplikace Microsoft Mesh
Nakonfigurujte protokoly klienta počítače tak, že vytvoříte soubor na ploše s názvem "startup_settings.json" s následujícím obsahem:
{
"use_startup_settings": true,
"log_groups": [
{ "name": "CloudScriptingClientSDK", "level": "Debug" },
{ "name": "CloudScriptingUnityRuntime", "level": "Debug" }
]
}
Reprodukujte problém a pak sdílejte protokoly Unity. Protokoly aplikací Microsoft Mesh najdete na adrese
Shromažďování protokolů serveru
A. Protokolový stream
I. Log Stream na webu Azure Portal
Pokud chcete zobrazit protokoly ze služby Skriptování cloudu Mesh, klikněte v části Monitorování prostředku AppService na nabídku Stream protokolů a zobrazte protokoly z kontejneru, jak je znázorněno na následujícím obrázku.
II. Protokolování streamu přes Azure CLI
Pokud máte na místním počítači nainstalované Rozhraní příkazového řádku Azure CLI, můžete také chytět tyto stejné protokoly z místního počítače spuštěním následujícího příkazu v terminálu:
az webapp log tail --name <APP_SERVICE_NAME> --resource-group <RESOURCE_GROUP_NAME>
III. Stažení protokolů jako souboru ZIP
Soubory protokolu můžete také stáhnout z hostované služby App Service tak, že přejdete na Rozšířené nástroje (Kudu). V části Vývojové nástroje v levém podokně vyhledejte rozšířené nástroje a klikněte na tlačítko Přejít.
Otevře se web SCM a pak si můžete stáhnout protokoly Dockeru jako soubor ZIP, jak je znázorněno níže.
B. Azure Monitor
Případně můžete pomocí služby Azure Monitor napsat dotazy KQL (dotazovací jazyk Kusto), abyste si mohli vybrat protokoly, které vás zajímají zejména z událostí, časových rozsahů a dalších možností. Pokud jste během nasazování zaškrtli políčko Povolit monitorování aplikací, automaticky by se vám to nastavilo. Pokud ne, prohlédněte si část Ruční nastavení služby Azure Monitor pro konfiguraci služby Azure Monitor pro vaše nasazení.
Pokud to chcete použít, vyberte v části Monitorování v navigačním podokně protokoly.
V podokně Monitorování dotazů můžete vybrat protokoly, které vás zajímají. V době psaní textu máme AppServiceConsoleLogs, AppServiceHTTPLogs, AppServiceAppLogs a AppServicePlatformLogs. Pokud chcete zobrazit protokoly z kontejneru Dockeru, můžete protokoly najít v AppServiceAppLogs a/nebo AppServiceConsoleLogs užitečnější.
Do textového pole zadaného na pravé straně nabídky Tabulky zadejte následující dotaz KQL:
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")
Exportujte data do souboru CSV.
Ruční nastavení pro Azure Monitor (volitelné)
Pokud jste během nasazování zaškrtli políčko Povolit monitorování aplikací, přeskočte.
Pro toto nastavení se vyžaduje pracovní prostor služby Log Analytics. Pokud nemáte existující pracovní prostor, postupujte podle oficiální příručky.
Otevřete Azure Portal a přejděte k prostředku AppService, ve kterém je spuštěná vaše cloudová skriptovací služba Mesh.
Klikněte na kartu Monitorování a posuňte se do dolní části stránky. Klikněte na tlačítko Konfigurovat Azure Monitor.
Kliknutím na odkaz + Přidat nastavení diagnostiky nastavte kategorie protokolů, které se odešlou do zvoleného pracovního prostoru.
Na příkazovém řádku vyplňte pole Název nastavení diagnostiky a pak vyberte kategorie protokolů, které vás zajímají (příklady: Protokoly konzoly služby App Service, protokoly aplikací služby App Service), zaškrtněte políčko Odeslat do pracovního prostoru služby Log Analytics a pak vyberte upřednostňovaný existující pracovní prostor služby Log Analytics.
Povolte Application Insights ze stránky služby App Service. Tím zajistíte, že se protokoly rozšíří do pracovního prostoru služby Log Analytics.
Vyplňte formulář a nezapomeňte ho nasměrovat na stejný pracovní prostor, ve kterém se vytvořilo nastavení diagnostiky.
Restartujte službu AppService a počkejte několik minut. Teď byste měli být schopni dotazovat protokoly ve službě Azure Monitor, jak je popsáno v části Azure Monitor.
Zkoumání nasazení cloudových skriptů v Azure
Na kartě Vytvořit prostředí služby Mesh si poznamenejte ID předplatného a hodnoty skupiny prostředků, které jste zvolili.
Na webu Azure Portal a ve vybraném předplatném přejděte do skupiny prostředků. Název skupiny prostředků můžete vyhledat buď z vyhledávacího panelu, nebo přejít do služby Skupiny prostředků a najít skupinu prostředků tam. Ujistěte se, že jste ve správném tenantovi a předplatném.
V podokně Nastavení skupiny prostředků přejděte na Nasazení. Měl by obsahovat seznam všech nasazení, která byla provedena ve skupině prostředků.
Nasazení cloudových skriptů, která vás zajímají:
Zřizování aplikací: Toto je první spuštění nasazení a slouží ke zřízení všech požadovaných cloudových skriptů prostředků. Dá se identifikovat pomocí zřizovací aplikace jako filtru v okně Nasazení.
Nastavení aplikace: Tím se vytvoří a aktualizuje nastavení webové aplikace. Dá se identifikovat pomocí svc-appsettings jako filtru v okně Nasazení.
Přípravná nastavení aplikace: Tím se vytvoří a aktualizuje přípravný slot webové aplikace. Dá se identifikovat pomocí svc-staging-appsettings jako filtru v okně Nasazení.
Nasazení aplikace: Používá se k následným změnám infrastruktury. Nasadí nejnovější verzi image dockeru cloudhost do přípravného slotu webové aplikace. To lze identifikovat pomocí deployApp jako filtru v okně Nasazení.
Prohození slotů aplikací: Tím se prohodí verze imagí dockeru cloudhost, které jsou přítomné ve webové aplikaci, a přípravná webová aplikace slotu. To je možné identifikovat pomocí nástroje deployApp-swap jako filtru v okně Nasazení.
Pokud chcete zobrazit další podrobnosti související s nasazením, klikněte na název nasazení. Podrobnosti operace pro každý typ prostředku zahrnují chybovou zprávu související s nasazením.
Tady je příklad nasazení, které nebylo úspěšné, včetně příčiny selhání:
Následné kroky, které lze provést, jsou závislé na konkrétních chybových zprávách.
Hlášení problémů
- Shromážděte všechny dostupné protokoly.
- Postupujte podle pokynů pro zpětnou vazbu .