Solução de problemas de Cloud Scripting
Falha no upload do ambiente
Se um estágio do Mesh Cloud Scripting durante o processo do Mesh Uploader falhar e o erro mostrado for "Verificar os logs para obter mais informações", verifique se os logs de informações estão sendo mostrados no Console do Unity. Atualmente, alguns erros são mostrados como logs de informações. Isso será melhorado em uma versão futura.
Falha na instalação do pacote de script de nuvem de malha
- Se você encontrar erros relacionados à instalação do pacote ou à instalação da ferramenta .NET (
The tool package could not be restored
ouVerify your unity package integrity
), verifique se você não tem fontes de pacote inválidas em sua configuração global do NuGet (noC:\Users\<UserName>\AppData\Roaming\NuGet\NuGet.config
diretório de configuração padrão do NuGet configurado no computador). - Se você encontrar o erro ao iniciar o
package is already installed
Modo de Jogo, sair do Modo de Jogo e iniciá-lo novamente deve atenuar isso. - Verifique os direitos de acesso no diretório
Assets\.MeshCloudScripting\.Packages
.
Depois de pressionar o botão Reproduzir do Unity Editor, nada acontece
- Verifique se há erros nos logs do Unity. Em particular, se o código do Cloud Scripting do Mesh tiver um erro de compilação, você verá "Falha na compilação do Cloud Scripting" no log de erros. Nesse caso, abra o arquivo csproj para o Mesh Cloud Scripting e corrija os erros. Se você compilar no Visual Studio, ele mostrará os erros de forma mais conveniente na saída do build.
- Se houver outros erros, revise esta página para obter informações adicionais sobre solução de problemas sobre erros específicos.
- Se não houver erros, pode haver erros de tempo de execução no código do Mesh Cloud Scripting. Anexe ao seu aplicativo com o depurador e inspecione a saída em busca de erros.
- Se nada ajudar, relate um bug.
Ao ingressar em um evento no aplicativo Microsoft Mesh, o Script de Nuvem de Malha não funciona
- Certifique-se de que a cena seja reproduzida conforme o esperado ao visualizá-la localmente no Unity.
- Certifique-se de que o ambiente implantado corresponda ao scene.map usado pelo serviço Mesh Cloud Scripting.
- No projeto do Unity, navegue até o componente Script de Nuvem de Malha e pressione
Serialize Scene
para forçar a serialização do gráfico de cena. - Recarregue seu ambiente com o Mesh Uploader.
- No projeto do Unity, navegue até o componente Script de Nuvem de Malha e pressione
- Teste sua versão local do Unity em relação ao serviço implantado.
- Verifique os logs no Unity para ver se há erros se não estiverem funcionando.
- Se nada ajudar, relate um bug.
- Inspecione os logs do Mesh Cloud Scripting e inclua informações relevantes sempre que possível em seu relatório de bug.
Os cliques não são recebidos
- É possível que o Mesh Cloud Scripting Service esteja enviando mensagens com uma frequência muito alta para o sistema manipular. Nesse caso, seu clique pode realmente ser recebido, mas, devido a um grande acúmulo de mensagens, leva muito tempo para que o resultado seja propagado de volta para o cliente. Tente desativar temporariamente o código de atualização de alta frequência para ver se isso corrige o problema. Em caso afirmativo, considere mudar para conduzir o Unity Animators em vez de atualizar as propriedades do Mesh Cloud Scripting.
- Se nada ajudar, relate um bug.
O Unity congela depois que você pressiona Play
Se você alternar o foco do Unity para outro aplicativo enquanto o Unity estiver sendo reproduzido, o Mesh Cloud Scripting Service continuará a ser executado, enviando mensagens para a fila de mensagens. Quando você alterna o foco de volta para o Unity, ele pausa até drenar completamente a fila. Se o Mesh Cloud Scripting Service estiver fazendo muitas alterações de estado frequentes e/ou você tiver mudado o foco do Unity por um longo tempo, o Unity poderá congelar por algum tempo enquanto isso acontece.
Como coletar logs
Coletando logs do Unity
Antes de relatar um problema, defina Verbosidade como Diagnóstico.
Reproduza o problema e envie os logs do Unity. Você pode encontrar o arquivo de log usando o menu Unity, que é armazenado por padrão em %LOCALAPPDATA%\Unity\Editor\Editor.log
.
Coletando logs do cliente do aplicativo Microsoft Mesh
Configure os logs do cliente do PC criando um arquivo na área de trabalho chamado "startup_settings.json" com o seguinte conteúdo:
{
"use_startup_settings": true,
"log_groups": [
{ "name": "CloudScriptingClientSDK", "level": "Debug" },
{ "name": "CloudScriptingUnityRuntime", "level": "Debug" }
]
}
Reproduza o problema e compartilhe os logs do Unity. Os logs de aplicativos do Microsoft Mesh podem ser encontrados em %USERPROFILE%\AppData\LocalLow\Microsoft\Microsoft Mesh\Player.log
Coletando logs do servidor
R. Transmissão de log
I. Fluxo de logs no portal do Azure
Para ver os logs do Mesh Cloud Scripting Service, na seção Monitoring do recurso AppService , clique no menu Log Stream para ver os logs do contêiner, conforme mostrado na imagem abaixo.
II. Fluxo de logs por meio da CLI do Azure
Se você tiver a CLI do Azure instalada em seu computador local, também poderá seguir esses mesmos logs do computador local executando o seguinte comando em seu terminal:
az webapp log tail --name <APP_SERVICE_NAME> --resource-group <RESOURCE_GROUP_NAME>
III. Baixe os logs como um arquivo zip
Você também pode baixar arquivos de log do serviço de aplicativo hospedado acessando as Ferramentas Avançadas (Kudu). Na seção "Ferramentas de desenvolvimento" do painel esquerdo, localize Ferramentas avançadas e clique no botão Ir.
O site do SCM é aberto e você pode baixar os logs do Docker como um arquivo Zip, conforme mostrado abaixo.
B. Azure Monitor
Como alternativa, usando o Azure Monitor, você pode escrever consultas KQL (Kusto Query Language) para escolher logs nos quais você está particularmente interessado em eventos, intervalos de tempo e muito mais. Isso seria configurado automaticamente para você se você marcasse a caixa "Ativar monitoramento de aplicativos" durante a implantação. Caso contrário, consulte a seção configuração manual do Azure Monitor para configurar o Azure Monitor para sua implantação.
Para usar isso, na seção Monitoramento do painel de navegação, selecione Logs.
No painel Monitoramento de consulta, você pode selecionar os logs nos quais está interessado. No momento em que este artigo foi escrito, temos "AppServiceConsoleLogs", "AppServiceHTTPLogs", "AppServiceAppLogs" e "AppServicePlatformLogs". Para exibir os logs do contêiner do Docker, você pode achar os logs em "AppServiceAppLogs" e/ou "AppServiceConsoleLogs" mais úteis.
Na caixa de texto fornecida no lado direito do menu Tabelas , digite a seguinte consulta 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")
Exporte dados para csv.
Configuração manual do Azure Monitor (opcional)
Ignore se você marcou "Ativar monitoramento de aplicativos" durante a implantação.
Um workspace do Log Analytics é necessário para essa configuração. Se você não tiver um espaço de trabalho existente, siga o guia oficial.
Abra o Portal do Azure e navegue até o recurso AppService no qual o Serviço de Script de Nuvem de Malha está em execução.
Clique na guia "Monitoramento" e role até a parte inferior da página. Clique no botão "Configurar Azure Monitor"
Clique no link "+ Adicionar configuração de diagnóstico" para definir as categorias de log que seriam enviadas para o workspace escolhido.
No prompt, preencha o campo "Nome da configuração de diagnóstico" e selecione as categorias de log nas quais você está interessado (exemplos: Logs do Console do Serviço de Aplicativo, Logs do Aplicativo do Serviço de Aplicativo), marque a caixa "Enviar para o workspace do Log Analytics" e selecione o workspace do Log Analytics existente de sua preferência.
Habilite o Application Insights na página Serviço de Aplicativo. Isso garantiria que os logs fossem propagados para o workspace do Log Analytics.
Preencha o formulário e certifique-se de apontá-lo para o mesmo espaço de trabalho em que sua Configuração de Diagnóstico foi criada.
Reinicie o AppService e aguarde alguns minutos. Agora você deve ser capaz de consultar logs no Azure Monitor, conforme descrito na seção Azure Monitor.
Investigando implantações de script de nuvem no Azure
Na guia Ambiente de criação do Mesh Uploader, anote os valores de ID de assinatura e grupo de recursos que você escolheu.
No Portal do Azure e na Assinatura selecionada, navegue até o grupo de recursos. Você pode pesquisar o nome do grupo de recursos na barra de pesquisa ou navegar até o serviço "Grupos de Recursos" e localizar seu grupo de recursos lá. Verifique se você está no locatário e na assinatura corretos.
No painel "Configurações" do grupo de recursos, navegue até "Implantações". Isso deve conter uma lista de todas as implantações que foram feitas no grupo de recursos.
As implantações do Cloud Scripting que são de seu interesse são:
Provisionamento de aplicativos: esta é a primeira execução de implantação e é usada para provisionar todos os recursos de script de nuvem necessários. Ele pode ser identificado usando provisionApp como um filtro na janela Implantações.
Configurações do aplicativo: Isso cria e atualiza as configurações do aplicativo Web. Ele pode ser identificado usando svc-appsettings como um filtro na janela Implantações.
Configurações do aplicativo de preparo: cria e atualiza o slot de preparo do aplicativo Web. Ele pode ser identificado usando svc-staging-appsettings como um filtro na janela Implantações.
Implantação de aplicativo: Isso é usado para alterações de infraestrutura subsequentes. Ele implanta a versão mais recente da imagem do docker cloudhost no slot de preparo do aplicativo Web. Isso pode ser identificado usando deployApp como um filtro na janela Implantações.
Troca de slots de aplicativo: troca as versões de imagem do docker do cloudhost presentes no aplicativo Web e no aplicativo Web de slot de preparo. Isso pode ser identificado usando deployApp-swap como um filtro na janela Implantações.
Para ver detalhes adicionais relacionados à implantação, clique no nome da implantação. Os Detalhes da Operação para cada tipo de recurso incluem a mensagem de erro relacionada à implantação.
Aqui está um exemplo de uma implantação que não foi bem-sucedida, incluindo a causa da falha:
As etapas acionáveis subsequentes dependem das mensagens de erro específicas.
Como relatar problemas
- Colete todos os logs disponíveis.
- Siga as orientações de feedback .