Как получить подробности об ошибках на веб-сайте 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.

Другие вопросы по тегам