Tentei definir o ambiente de preparação onde posso ver o erro detalhado. Se eu alternar ASPNETCORE_ENVIRONMENT
para Development
, verei o erro detalhado. Vou explicar abaixo.
launchSettings.json
:
{
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"TestApp-DEV": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"dotnetRunMessages": true,
"applicationUrl": "https://localhost:7000;http://localhost:5000"
},
"TestApp-PROD": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Production"
},
"dotnetRunMessages": true,
"applicationUrl": "https://localhost:7000;https://TestApp.scm.azurewebsites.net"
},
"TestApp-Staging": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Staging"
},
"dotnetRunMessages": true,
"applicationUrl": "https://localhost:7000;https://TestApp.scm.azurewebsites.net"
}
},
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:40116",
"sslPort": 44301
}
}
}
appsettings.json
tem 3 arquivos de configuração diferentes. Note que appsettings.Staging.json
e appsettings.Production.json
são quase a mesma configuração.
Se eu executar o projeto no localhost com o ambiente "TestApp-DEV", verei a página de erro detalhada.
Se eu executar o projeto no localhost como Staging ou Production, receberei esta mensagem:
Minha solução alternativa para solução de problemas relacionados ao ambiente de produção é renomear o appsettings.Development.json
para algo temporário, depois alterar o nome appsettings.Staging.json
para appsettings.Development.json
e executar o projeto no ambiente de desenvolvimento para que eu possa ver o erro detalhado relacionado à produção. Depois disso, reverta os nomes do appsettings.
Existe uma maneira de mostrar o erro detalhado quando executo o projeto no locolhost no ambiente de preparação ou projeção?
Provavelmente a abordagem mais fácil seria simplesmente usar a página de exceção do desenvolvedor no teste:
Provavelmente você pode adicionar um valor de configuração extra para verificar se ele deve ser habilitado (e configurá-lo em
launchSettings
ouappSettings
).Você também pode usar pipeline condicional. Por exemplo:
ou simplesmente encapsular o
UseDeveloperExceptionPage
into#if DEBUG
como @Jeremy Lakeman se isso for necessário apenas para compilações de depuração e depuração local.