Как получить подробности об ошибках на веб-сайте Azure
Я новичок в Azure. Кто-нибудь знает, как получить подробное сообщение об ошибке на веб-сайте, развернутом в Azure Web?
я добавил SimpleMembership
на веб-сайт и теперь Регистрация и Вход (Post) показывают
Извините, произошла ошибка при обработке вашего запроса.
Я подключаюсь к БД на моем домашнем компьютере (нет проблем с подключением).
LogFiles
В папке на ftp-сервере Azure есть несколько файлов, но я не вижу, как использовать эту информацию. Я хотел бы получить YellowScreen на лазурном...
3 ответа
У вас есть два варианта:
Во-первых, вы можете отключить пользовательские ошибки в вашей веб-конфигурации. Это быстрый и грязный подход, но он по крайней мере даст вам информацию, которую вы ищете. Просто обязательно включите пользовательские ошибки, когда закончите. ПРИМЕЧАНИЕ. Этот метод отобразит вашу трассировку стека во всем мире.
<configuration>
<system.web>
<customErrors mode="Off" />
</system.web>
</configuration>
Во-вторых, вы можете использовать удаленный рабочий стол на развернутой машине, перейти к диспетчеру IIS и перейти на свой сайт. Как только вы окажетесь там, воспроизведите ошибку, и вы получите желтый экран смерти, который вы ищете. Чтобы это работало, вам нужно включить подробные ошибки
Создайте таблицу в db, где вы будете хранить журналы ошибок, я использую EF и таблицу с именем Logs.
Создать класс:
public class MyAppExceptionFilter : IExceptionFilter
{
private MyApp.Models.ApplicationDbContext db = new Models.ApplicationDbContext();
public void OnException(ExceptionContext context)
{
Exception ex = context.Exception;
Log log = new Log();
log.DateTime = DateTime.Now;
log.LogText = "Exception happened, text:" + ex.Message;
try
{
log.LogText +="User details:"+context.HttpContext.User.Identity.Name;
}
catch
{
log.LogText += "User details:none";
}
db.Logs.Add(log);
db.SaveChanges();
}
}
В FilterConfig.cs в папке App_Start добавьте:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
*filters.Add(new MyAppExceptionFilter());*
}
Вы также можете получить ту же диагностику, передав журналы консоли в облачную оболочку. Войдите в лазурь. Откройте консоль... Azure CLI.
az webapp log config --name <app-name> --resource-group
myResourceGroup --application-logging filesystem --level information
Чтобы начать трансляцию...
az webapp log tail --name <app-name> --resource-group myResourceGroup
Теперь просто обновите браузер для ошибки.
Ctrl-Cобратно в CLI остановит потоковую передачу.
Я взял это здесь:Учебное пособие. Создание приложения базы данных ASP.NET Core и Azure SQL в службе приложений Azure.