Устранение неполадок приложения в Cлужбе приложений Azure с помощью Visual Studio

Примечание.

Эта статья предназначена для Visual Studio 2019. Сведения об устранении неполадок в Visual Studio 2022 см. в разделе "Удаленная отладка ASP.NET Core" в службе приложение Azure.

Обзор

В этом руководстве показано, как использовать инструменты Visual Studio, которые позволяют отлаживать работу приложения в Cлужбе приложений путем запуска приложения удаленно в режиме отладки или путем просмотра журналов приложения и журналов веб-сервера.

Вы узнаете:

  • Какие функции управления приложением доступны в среде Visual Studio.
  • Как использовать удаленное представление Visual Studio для быстрого изменения удаленного приложения.
  • Как удаленно запустить режим отладки для приложения и веб-задания, если проект запущен в Azure.
  • Как создать журналы трассировки приложения и просматривать их непосредственно во время создания.
  • Как просматривать журналы веб-сервера, включая подробные сообщения об ошибках и трассировку неудачно завершившихся запросов.
  • Как отправлять диагностические журналы в учетную запись хранения Azure и просматривать их там.

Если у вас установлена Visual Studio Ultimate, вы также можете использовать IntelliTrace для отладки. Использование IntelliTrace не рассматривается в этом учебнике.

Необходимые компоненты

В этом руководстве речь идет о среде разработки, веб-проекте и Службе приложений, которые вы настроили, следуя инструкциям статьи Создание веб-приложения ASP.NET Framework в Azure. Для разделов, посвященных веб-заданиям, вам понадобится приложение, созданное при изучении руководства Начало работы с пакетом SDK для Azure для веб-заданий.

В этом учебнике приводятся примеры кода для веб-приложения C# MVC, однако в приложениях Visual Basic и веб-форм применяются те же процедуры устранения неполадок.

В этом руководстве предполагается, что вы используете Visual Studio 2019.

Журналы потоковой передачи работают только для приложений, которые предназначены для .NET Framework 4 и выше.

Настройка приложения и управление им

Visual Studio обеспечивает доступ к сокращенному набору функций управления приложением и параметров конфигурации, полный набор которых доступен на портале Azure. В этом разделе вы узнаете, какие функции доступны с помощью обозревателя сервера. Для просмотра новых функций интеграции Azure также воспользуйтесь Обозревателем облака . Оба окна можно открыть в меню Вид .

  1. Если вы еще не вошли в Azure в Visual Studio, щелкните правой кнопкой мыши Azure и выберите подключение к подписке Microsoft Azure в обозревателе сервера.

    Также вы можете установить сертификат управления, обеспечивающий доступ к вашей учетной записи. Чтобы установить сертификат, щелкните правой кнопкой мыши узел Azure в обозревателе сервера и выберите Управление подписками и их фильтрация в контекстном меню. В диалоговом окне Управление подписками Microsoft Azure откройте вкладку Сертификаты, а затем щелкните Импорт. Следуя указаниям, загрузите и импортируйте файл подписки (файл .publishsettings ) для своей учетной записи Azure.

    Примечание.

    Если вы скачиваете файл подписки, сохраните его в папку, не входящую в структуру каталогов с исходными кодами (например, в папку «Загрузки»), а затем удалите его сразу после завершения импорта. Злоумышленник, получивший доступ к файлу подписки, сможет изменять, создавать и удалять ваши службы Azure.

    Дополнительные сведения о подключении к ресурсам Azure из Visual Studio см. в статье Назначение ролей Azure с помощью портала Azure.

  2. В обозревателе сервера разверните узел Azure, а затем — узел Служба приложений.

  3. Разверните группу ресурсов, которая содержит приложение ASP.NET, созданное в Службе приложений Azure, а затем щелкните узел этого приложения правой кнопкой мыши и выберите Просмотреть параметры.

    Просмотр параметров в обозревателе сервера

    Появится вкладка Веб-приложение Azure, где можно просмотреть задачи по управлению и конфигурации, доступные в Visual Studio.

    Окно веб-приложений Azure

    В этом руководстве используются раскрывающиеся списки ведения журналов и трассировки. Для удаленной отладки вы будете использовать другой метод.

    Сведения о полях параметров приложения и строк подключения в этом окне см. в статье Служба приложений Azure: принцип работы параметров приложения и строк подключения.

    Если необходимо выполнить задачу по управлению приложением, которую невозможно выполнить в этом окне, щелкните Открыть на портале управления, чтобы открыть портал Azure в браузере.

Доступ к файлам приложения в обозревателе серверов

Как правило, при развертывании веб-проекта флагу customErrors в файле Web.config присваивается значение On или RemoteOnly, поэтому вы не видите сообщения о возникающих ошибках. В большинстве случаев при ошибке отображается страница следующего вида.

Ошибка сервера в приложении "/":

Снимок экрана: ошибка сервера в приложении

Произошла ошибка:

Снимок экрана: пример общей ошибки в веб-браузере.

Не удается отобразить страницу веб-сайта

Снимок экрана: сообщение, которое считывает **Веб-сайт не может отобразить ошибку страницы в веб-браузере**.

Подробное сообщение об ошибке, как правило, содержит полезные сведения для ее устранения. На предыдущих снимках экрана показано, как включить эту функцию. Для этого необходимо внести изменения в развернутый файл Web.config. Вы можете изменить файл Web.config в проекте и повторно развернуть проект либо создать Web.configпреобразование и развернуть отладочную сборку. Однако вы можете значительно упростить этот процесс с помощью обозревателя решений, непосредственно просматривая и редактируя файлы на удаленном сайте с помощью функции удаленного представления.

  1. В обозревателе сервера разверните узлы Azure, Службу приложений и группу ресурсов, в которой расположено ваше приложение, а затем разверните узел приложения.

    Откроются узлы, обеспечивающие доступ к файлам содержимого и журналов приложения.

  2. Разверните узел Файлы и дважды щелкните файл Web.config .

    Открытие файла Web.config

    В Visual Studio откроется файл Web.config удаленного приложения, а в строке заголовка к его имени будет добавлено [Remote].

  3. Добавьте следующую строку в элемент system.web :

    <customErrors mode="Off"></customErrors>

    Изменение файла Web.config

  4. Обновите окно браузера, в котором отображается неинформативное сообщение. Вы увидите подробную информацию об ошибке, как в следующем примере:

    Подробные сведение об ошибке

    Для создания отображаемой ошибки в файл Views\Home\Index.cshtml была добавлена выделенная красным цветом строка.

Изменение файла Web.config — это пример упрощения устранения неполадок путем чтения и редактирования файлов в Службе приложений.

Удаленная отладка приложений

Если в подробном сообщении об ошибке содержится недостаточно сведений и вы не можете воспроизвести ошибку в локальной системе, попробуйте выполнить отладку в удаленном режиме. В этом режиме вы можете задавать точки останова, обращаться к памяти напрямую, осуществлять пошаговое выполнение кода и даже изменять путь кода.

Удаленная отладка не поддерживается в выпусках Visual Studio Express.

В этом разделе показано, как удаленно выполнить отладку с помощью проекта, созданного при изучении раздела Создание веб-приложения ASP.NET Framework в Azure.

  1. Откройте веб-проект, созданный после выполнения инструкций статьи Создание веб-приложения ASP.NET Framework в Azure.

  2. Откройте файл Controllers\HomeController.cs.

  3. Удалите метод About() и вставьте вместо него следующий код.

    public ActionResult About()
    {
        string currentTime = DateTime.Now.ToLongTimeString();
        ViewBag.Message = "The current time is " + currentTime;
        return View();
    }
    
  4. Задайте точку останова в строке ViewBag.Message.

  5. В обозревателе решений щелкните правой кнопкой мыши проект и выберите Опубликовать.

  6. Из раскрывающегося списка Профиль выберите профиль, который вы использовали при выполнении инструкций из статьи Создание веб-приложения ASP.NET Framework в Azure. Затем щелкните "Параметры".

  7. В диалоговом окне Публикация щелкните вкладку Параметры и измените значение Конфигурация на Отладка, затем щелкните Сохранить.

    Публикация в режиме отладки

  8. Нажмите кнопку Опубликовать. Когда завершится развертывание и откроется URL-адрес Azure вашего приложения, закройте браузер.

  9. В обозревателе сервера щелкните правой кнопкой мыши приложение и выберите Подключить отладчик.

    Снимок экрана: окно обозревателя сервера, в котором выбрано приложение и пункт контекстного меню

    В браузере автоматически откроется ваша главная страница, размещенная в Azure. Возможно, придется подождать около 20 секунд, пока Azure настраивает сервер для отладки. Эта задержка возникает только при первом запуске приложения в режиме отладки в течение 48-часового периода. При повторном запуске отладки в рамках того же периода времени задержки не будет.

    Примечание.

    При возникновении сложностей с запуском отладчика попробуйте сделать это с помощью Cloud Explorer, а не обозревателя сервера.

  10. Выберите пункт О программе в меню.

    Visual Studio прерывается в точке останова, при этом код выполняется в Azure, а не на локальном компьютере.

  11. Наведите указатель мыши на переменную currentTime , чтобы просмотреть значение времени.

    Просмотр переменной в режиме отладки в Azure

    Время, которое отображается здесь, является временем сервера Azure, который может находиться в другом часовом поясе, отличном от часового пояса локального компьютера.

  12. Введите новое значение переменной currentTime , например "Теперь выполняется в Azure".

  13. Чтобы продолжить выполнение, нажмите клавишу F5.

    На странице "О программе" в Azure отображается новое значение, введенное в переменной currentTime.

    Страница

Удаленная отладка веб-заданий

В этом разделе демонстрируется удаленная отладка с использованием проекта и приложения, созданного на этапе Начало работы с пакетом SDK веб-заданий Azure.

Функции, приведенные в этом разделе, доступны только в Visual Studio 2013 с обновлением 4 или более поздней версии.

Удаленная отладка работает только с непрерывными веб-заданиями. Веб-задания по расписанию и по требованию не поддерживают отладку.

  1. Откройте веб-проект, созданный в разделе Информация о пакете SDK веб-заданий.

  2. В проекте ContosoAdsWebJob откройте Functions.cs.

  3. Установите точку останова в первом операторе метода GenerateThumbnail.

    Задание точки останова

  4. В обозревателе решений щелкните правой кнопкой мыши веб-проект (не проект веб-задания) и выберите Опубликовать.

  5. В раскрывающемся списке Профиль выберите тот же профиль, который вы использовали в учебнике Приступая к работе с пакетом SDK для веб-заданий Azure.

  6. Щелкните вкладку Параметры и измените значение Конфигурация на Отладка, затем щелкните Опубликовать.

    Visual Studio развертывает веб-проекты и проекты веб-заданий и открывает в браузере URL-адрес Azure вашего приложения.

  7. В Обозревателе решений разверните узлы Azure > Служба приложений > ваша группа ресурсов > ваше приложение > Веб-задания > Непрерывное, а затем щелкните правой кнопкой мыши ContosoAdsWebJob.

  8. Щелкните Подключить отладчик.

    Снимок экрана: обозреватель сервера, в котором выбран элемент ContosoAdsWebJob и пункт

    В браузере автоматически откроется ваша главная страница, размещенная в Azure. Возможно, придется подождать около 20 секунд, пока Azure настраивает сервер для отладки. Эта задержка возникает только при первом запуске приложения в режиме отладки в течение 48-часового периода. При повторном запуске отладки в рамках того же периода времени задержки не будет.

  9. В веб-браузере на главной странице Contoso Ads создайте новое объявление.

    Создание рекламы приводит к созданию сообщения очереди, которое забирается и обрабатывается веб-заданиями. Когда пакет SDK веб-заданий вызывает функцию для обработки сообщения очереди, выполнение кода прерывается в точке останова.

  10. Когда отладчик останавливается в точке останова, вы можете проверить и изменить значения переменных, пока программа выполняется в облаке. На следующем рисунке отладчик показывает содержимое объекта blobInfo, который был передан в метод GenerateThumbnail.

    Объект blobInfo в отладчике

  11. Чтобы продолжить выполнение, нажмите клавишу F5.

    Метод GenerateThumbnail завершает создание эскиза.

  12. В браузере обновите страницу индекса и посмотрите эскиз.

  13. В Visual Studio нажмите сочетание клавиш SHIFT+F5, чтобы остановить отладку.

  14. В обозревателе сервера щелкните правой кнопкой мыши узел ContosoAdsWebJob и щелкните Просмотреть панель мониторинга.

  15. Выполните вход с использованием ваших учетных данных Azure и щелкните имя веб-задания, чтобы перейти к странице вашего веб-задания.

    Щелкните ContosoAdsWebJob

    Панель мониторинга показывает, что недавно была выполнена функция GenerateThumbnail.

    (В следующий раз при нажатии кнопки Представление панели мониторингане нужно выполнять вход, браузер перейдет непосредственно на страницу вашего веб-задания.)

  16. Щелкните имя функции для просмотра подробных сведений о выполнении функции.

    Сведения о функции

Если функция записала журналы, для их просмотра щелкните пункт ToggleOutput .

Примечания о режиме удаленной отладки

  • В рабочей среде выполнение в режиме отладки не рекомендуется. Если ваше рабочее приложение не развернуто на несколько экземпляров сервера, то веб-сервер во время отладки не сможет отвечать на запросы от других приложений. Если имеется несколько экземпляров веб-сервера, то при подключении отладчика будет использован случайно выбранный экземпляр и не будет никакой возможности гарантировать, что последующие запросы браузера будут передаваться в тот же самый экземпляр. Кроме того, как правило, отладочная сборка не развертывается в производственной среде, а оптимизации компилятора для разворачиваемых сборок делают невозможным построковое отображения действий в исходном коде. Для устранения неполадок в рабочей среде лучше всего использовать журналы веб-сервера и трассировки приложения.

  • Во время удаленной отладки избегайте длинных остановок на точках останова. Azure обрабатывает процесс, остановленный дольше, чем на несколько минут, как процесс, не отвечающий на запросы, и закрывает его.

  • Во время отладки сервер отправляет данные в среду Visual Studio, что может повлиять на расходы, связанные с пропускной способностью. Сведения о тарифах на пропускную способность см. в разделе Цены на Azure.

  • Убедитесь, что атрибут debug элемента compilation в файле Web.config имеет значение true. По умолчанию при публикации отладочной конфигурации сборки для него задано значение true.

    <system.web>
      <compilation debug="true" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
    </system.web>
    
  • Если вы обнаружите, что отладчик не осуществляет пошаговое выполнение кода, который требуется отладить, может потребоваться изменить параметр "Только мой код". Дополнительные сведения см. в разделе Укажите, следует ли отладка пользовательского кода, с помощью "только мой код" в Visual Studio.

  • При активации функции удаленной отладки на сервере запускается таймер, который автоматически отключает эту функцию по истечении 48 часов. Это 48-часовое ограничение установлено в целях повышения безопасности и производительности. Вы можете в любое время снова активировать эту функцию. Если вы не ведете отладку, эту функцию рекомендуется оставить отключенной.

  • Вы можете вручную присоединить отладчик к любому процессу, а не только к процессу приложения (w3wp.exe). Дополнительные сведения о том, как использовать режим отладки в Visual Studio, см. в разделе Отладка в Visual Studio.

Обзор журналов диагностики

Приложение ASP.NET, которое работает в Службе приложений, может создавать следующие виды журналов.

  • Журналы трассировки приложения
    Приложение создает эти журналы, вызывая методы класса System.Diagnostics.Trace .
  • Журналы веб-сервера
    Веб-сервер создает запись журнала для каждого HTTP-запроса в приложение.
  • Подробные журналы сообщений об ошибках
    Веб-сервер создает страницу HTML с некоторой дополнительной информацией об ошибочных HTTP-запросах (это запросы, которые приводят к появлению кода состояния 400 и выше).
  • Журналы трассировки неудачно завершенных запросов
    Веб-сервер создает XML-файл с подробными сведениями трассировки ошибочных HTTP-запросов. Веб-сервер также предоставляет XSL-файл для форматирования XML-кода в браузере.

Ведение журнала влияет на производительность приложения, поэтому Azure предоставляет возможность при необходимости включить или отключить каждый тип журнала. Для журналов приложений можно указать, что следует писать только журналы с уровнем серьезности выше заданного. При создании нового приложения ведение журналов по умолчанию отключено.

Журналы записываются в файлы, содержащиеся в папке LogFiles файловой системы вашего приложения, и доступны через FTP. Журналы приложений и журналы веб-сервера также могут записываться в учетную запись хранения Azure. В учетной записи хранения можно держать больший объем журналов, чем в файловой системе. При использовании файловой системы на журналы отводится 100 мегабайтов. (Журналы файловой системы хранятся в течение короткого срока. При достижении установленного ограничения Azure удаляет старые файлы журналов, чтобы освободить место под новые.)

Создание и просмотр журналов трассировки приложения

В этом разделе вам нужно выполнить следующие задачи.

  • Добавление инструкций трассировки в веб-проект, созданный с помощью руководства по использованию Azure и ASP.NET.
  • Просмотр журналов при локальном выполнении проекта.
  • Просмотр журналов, создаваемых во время работы приложения в Azure.

Сведения о том, как создавать журналы приложений в веб-заданиях, см. в разделе Работа с хранилищем очередей Azure с помощью пакета SDK веб-заданий — создание записей в журналах. Следующие инструкции для просмотра журналов и управления их хранением в Azure также применяются для журналов приложений, созданных с помощью Azure.

Добавление инструкций трассировки в приложение

  1. Откройте файл Controllers\HomeController.cs и замените методы Index, About и Contact приведенным ниже кодом, чтобы добавить инструкции Trace и инструкцию using для System.Diagnostics.

    public ActionResult Index()
    {
        Trace.WriteLine("Entering Index method");
        ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
        Trace.TraceInformation("Displaying the Index page at " + DateTime.Now.ToLongTimeString());
        Trace.WriteLine("Leaving Index method");
        return View();
    }
    
    public ActionResult About()
    {
        Trace.WriteLine("Entering About method");
        ViewBag.Message = "Your app description page.";
        Trace.TraceWarning("Transient error on the About page at " + DateTime.Now.ToShortTimeString());
        Trace.WriteLine("Leaving About method");
        return View();
    }
    
    public ActionResult Contact()
    {
        Trace.WriteLine("Entering Contact method");
        ViewBag.Message = "Your contact page.";
        Trace.TraceError("Fatal error on the Contact page at " + DateTime.Now.ToLongTimeString());
        Trace.WriteLine("Leaving Contact method");
        return View();
    }        
    
  2. Добавьте в начало файла инструкцию using System.Diagnostics; .

Просмотр результатов трассировки локально

  1. Нажмите F5 , чтобы запустить приложение в режиме отладки.

    Прослушиватель трассировки по умолчанию записывает весь вывод трассировки в окно Вывод вместе со всем остальным выводом отладки. На следующем рисунке показан вывод инструкций трассировки, добавленных в метод Index .

    Трассировка в окне отладки

    Ниже показано, как просмотреть выходные данные трассировки на веб-странице без компиляции в режиме отладки.

  2. Откройте файл Web.config приложения (находится в папке проекта) и добавьте элемент <system.diagnostics> в конец файла непосредственно перед закрывающим элементом </configuration>:

    <system.diagnostics>
    <trace>
      <listeners>
        <add name="WebPageTraceListener"
            type="System.Web.WebPageTraceListener,
            System.Web,
            Version=4.0.0.0,
            Culture=neutral,
            PublicKeyToken=b03f5f7f11d50a3a" />
      </listeners>
    </trace>
    </system.diagnostics>
    

WebPageTraceListener позволяет просматривать результаты трассировки, открыв /trace.axd.

  1. Добавьте элемент трассировки под <system.web> в файле Web.config, например так:

    <trace enabled="true" writeToDiagnosticsTrace="true" mostRecent="true" pageOutput="false" />
    
  2. Для запуска приложения нажмите сочетание клавиш CTRL+F5.

  3. В адресной строке окна браузера добавьте trace.axd к URL-адресу и нажмите клавишу ВВОД (URL-адрес должен иметь такой вид: http://localhost:53370/trace.axd).

  4. На странице Трассировка приложения щелкните Просмотр сведений в первой строке (не в строке BrowserLink).

    Снимок экрана: страница

    Откроется страница Сведения о запросе, где в разделе Сведения о трассировке отображаются выходные данные инструкций трассировки, добавленных в метод Index.

    Снимок экрана: страница

    По умолчанию trace.axd доступен только локально. Если он должен быть доступен также в удаленном приложении, можно добавить строку localOnly="false" в элемент trace файла Web.config, как показано в следующем примере.

    <trace enabled="true" writeToDiagnosticsTrace="true" localOnly="false" mostRecent="true" pageOutput="false" />
    

    Тем не менее включение trace.axd в рабочем приложении не рекомендуется по соображениям безопасности. В следующих разделах вы изучите более простой способ чтения журналов трассировки в приложении Службы приложений.

Просмотр результатов трассировки в Azure

  1. В обозревателе решений щелкните правой кнопкой веб-проект и выберите Опубликовать.

  2. В диалоговом окне Публикация веб-сайта щелкните Опубликовать.

    После того как Visual Studio опубликует обновление, главная страница откроется в окне браузера (если не снят флажок URL-адрес назначения на вкладке Подключение).

  3. В обозревателе сервера щелкните правой кнопкой мыши приложение и выберите Просмотр журналов потоковой передачи.

    Снимок экрана обозревателя сервера после щелчка приложения правой кнопкой мыши, где в новом окне выбран элемент

    В окне Вывод показано, что вы подключены к службе потоковой передачи журналов; каждую минуту, когда отсутствует журнал для отображения, появляется строка уведомления.

    Снимок экрана: окно

  4. В окне браузера с открытой главной страницей щелкните пункт Contact.

    Через несколько секунд в окне ContactВывод появятся результаты трассировки уровня ошибки, добавленные в метод .

    Трассировка ошибок в окне вывода

    Visual Studio отображает только трассировки уровня ошибок, так как это настройка выставляется по умолчанию при включении службы мониторинга журналов. При создании нового приложения Службы приложений ведение всех журналов по умолчанию отключено. Вы могли убедиться в этом ранее при открытии страницы параметров сайта.

    Выключение ведение журнала приложения

    Однако при выборе Просмотр журналов потоковой передачи Visual Studio автоматически изменяет значение параметра Ведение журнала приложений (файловая система) на Ошибка, что означает представление только журналов уровня ошибок. Чтобы просмотреть все журналы трассировки, следует изменить значение этого параметра на Подробно. Если выбран уровень серьезности меньше уровня ошибок, начинают предоставляться и все журналы с более высокими уровнями серьезности. Поэтому при выборе подробного уровня вы также сможете просматривать журналы информационных сообщений, предупреждений и ошибок.

  5. В обозревателе сервера щелкните правой кнопкой мыши приложение, затем щелкните Просмотреть параметры, как и раньше.

  6. Измените значение параметра Ведение журнала приложения (файловая система) на Подробно, затем нажмите кнопку Сохранить.

    Уровень трассировки

  7. В окне браузера, в котором теперь отображается страница Contact (Контактная информация), щелкните Home (Главная), затем About (О программе) и щелкните Contact (Контактная информация).

    Через несколько секунд в окне Вывод появятся все результаты трассировки.

    Подробные результаты трассировки

    В этом разделе вы включили и отключили ведение журналов с помощью параметров приложения. Можно также включить и отключить прослушиватели трассировки, изменив содержимое файла Web.config. Но изменение файла Web.config приводит к перезапуску домена приложения, тогда как включение ведения журналов через настройку приложения не приводит к таким результатам. Если воспроизведение проблемы занимает много времени или проблема возникает только периодически, перезапуск домена приложения может устранить неполадку, так что вам придется ждать следующего ее возникновения. Включение диагностики в Azure позволяет незамедлительно начать сбор сведений об ошибках, не перезапуская домен приложения.

Функции окна вывода

На вкладке Журналы Microsoft Azure окна Вывод расположены несколько кнопок и текстовое поле.

Снимок экрана: кнопки и текстовое поле на вкладке

Служат для выполнения следующих функций:

  • Очистка окна Вывод .
  • Включение или отключение переноса слов.
  • Запуск или остановка журналов мониторинга.
  • Определение журналов мониторинга.
  • скачиванию журналов.
  • Фильтрация журналов на основе регулярного выражения или строки поиска.
  • Закрытие окна Вывод .

Если ввести строку поиска или регулярное выражение, Visual Studio фильтрует сведения в журналах на стороне клиента. Это означает, что можно ввести критерии после отображения журналов в окне Вывод , а также изменить критерии фильтрации без необходимости повторного создания журналов.

Просмотр журналов веб-сервера

Журналы веб-сервера регистрируют все действия по протоколу HTTP в приложении. Чтобы увидеть их в окне Вывод, включите их в приложении и укажите Visual Studio отслеживать их.

  1. На вкладке Конфигурация веб-приложения Azure, открытой в обозревателе сервера, измените значение параметра "Ведение журналов веб-сервера" на Включено и нажмите кнопку Сохранить.

    Включение ведения журналов веб-сервера

  2. В окне Вывод нажмите кнопку Выбор журналов Microsoft Azure для мониторинга.

    Укажите, какие журналы Azure отслеживать

  3. В диалоговом окне Параметры ведения журнала Microsoft Azure выберите Журналы веб-сервера и нажмите кнопку ОК.

    Мониторинг журналов веб-сервера

  4. В окне браузера, в котором отображается приложение, щелкните Home (Главная), затем About (О программе) и Contact (Контактная информация).

    Как правило, первыми отображаются журналы приложений, за которыми следуют журналы веб-сервера. Подождите некоторое время, чтобы дождаться отображения журналов.

    Журналы веб-сервера в окне вывода

По умолчанию при первом включении журналов веб-сервера с помощью Visual Studio Azure записывает журналы в файловой системе. В качестве альтернативы на портале Azure можно указать, что журналы веб-сервера должны записываться в контейнер больших двоичных объектов в учетной записи хранения.

Если включить ведение журналов веб-сервера для учетной записи хранения Azure с помощью портала, а затем отключить ведение журналов в Visual Studio, то при повторном включении ведения журналов в Visual Studio восстанавливаются параметры учетной записи хранения.

Просмотр подробных журналов сообщений об ошибках

Подробные журналы сообщений об ошибках представляют некоторые дополнительные сведения о HTTP-запросах, которые завершаются с кодом ошибки (400 или выше). Чтобы увидеть их в окне Вывод, включите их в приложении и дайте команду Visual Studio отслеживать их.

  1. На вкладке Конфигурация веб-приложения Azure, открытой в обозревателе сервера, измените значение параметра Подробные сообщения об ошибках на Включено, затем нажмите кнопку Сохранить.

    Включение подробных сообщений об ошибках

  2. В окне Вывод нажмите кнопку Выбор журналов Microsoft Azure для мониторинга.

  3. В диалоговом окне Параметры ведения журнала Microsoft Azure выберите Все журналы и нажмите кнопку ОК.

    Отслеживание всех журналов

  4. В адресной строке окна браузера добавьте дополнительный символ в URL-адрес, чтобы вызвать ошибку 404 (например, http://localhost:53370/Home/Contactx), и нажмите клавишу "ВВОД".

    После нескольких секунд в окне Visual Studio Вывод появится подробный журнал ошибок.

    Подробный журнал ошибок в окне

    Щелкните ссылку, удерживая нажатой клавишу CTRL, чтобы просмотреть форматированные выходные данные журнала в браузере:

    Подробный журнал ошибок в окне браузера

Загрузка журналов файловой системы

Все журналы, которые можно отслеживать в окне Вывод , также можно загрузить в виде файла ZIP .

  1. В окне Вывод щелкните Загрузить журналы потоковой передачи.

    Снимок экрана: окно

    В проводнике открывается папка Загрузки с выбранным загруженным файлом.

    Снимок экрана: папка

  2. Извлеките содержимое ZIP -файла, чтобы увидеть структуру папки, аналогичную следующей:

    Снимок экрана: структура папки ZIP-файла после извлечения файла.

    • Журналы трассировки приложения хранятся в TXT-файлах в папке LogFiles\Application.

    • Журналы веб-сервера хранятся в LOG-файлах в папке LogFiles\http\RawLogs. Можно использовать средство, аналогичное Log Parser для просмотра и обработки этих файлов.

    • Подробные журналы сообщений об ошибках хранятся в HTML-файлах в папке LogFiles\DetailedErrors.

      (Папка deployments предназначена для файлов, созданных при публикации системы управления версиями; она никак не связана с публикациями Visual Studio. Папка Git предназначена для трассировок, относящихся к публикациям системы управления версиями и службы потоковой передачи файлов журналов.)

Просмотр журналов неудачно завершенных запросов

Журналы трассировки неудачно завершенных запросов полезны при просмотре подробных сведений по обработке IIS HTTP-запроса в таких сценариях, как перезапись URL-адреса, или при возникновении проблем, связанных с проблемами проверки подлинности.

Приложения Службы приложений используют те же функциональные возможности трассировки неудачно завершенных запросов, которые доступны в IIS, начиная с версии 7.0. Однако у вас нет доступа к параметрам IIS, которые определяют, какие ошибки будут регистрироваться. При включении трассировки неудачно завершенных запросов захватываются все ошибки.

Можно включить трассировку неудачно завершенных запросов с помощью Visual Studio, однако эту трассировку невозможно просмотреть в Visual Studio. Эти журналы представляют собой XML-файлы. Служба потоковой передачи журналов только отслеживает файлы, которые могут быть прочтены в режиме обычного текста: это TXT-, HTML- и LOG-файлы.

Журналы трассировки неудачно завершенных запросов можно просматривать напрямую в браузере через FTP или локально после загрузки их на локальный компьютер с помощью средства для работы с FTP. В этом разделе они будут просматриваться непосредственно в браузере.

  1. На вкладке Конфигурация окна Веб-приложение Azure, открытого в обозревателе сервера, измените значение параметра Трассировка неудачно завершенных запросов на Включено, затем нажмите кнопку Сохранить.

    Включение трассировки неудачно завершенных запросов

  2. В адресной строке окна браузера, в котором отображается приложение, добавьте дополнительный символ в URL-адрес, чтобы вызвать ошибку 404, и нажмите клавишу "ВВОД".

    Это приведет к созданию журнала трассировки неудачно завершенных запросов. Ниже приведены действия, демонстрирующие, как просмотреть или загрузить журнал.

  3. В Visual Studio на вкладке Конфигурация окна Веб-приложение Azure щелкните Открыть на портале управления.

  4. На странице параметров портал Azure для приложения щелкните "Учетные данные развертывания", а затем введите новое имя пользователя и пароль.

    Новое имя пользователя и пароль FTP

    Примечание.

    Для входа необходимо использовать полное имя пользователя с префиксом в виде имени приложения. Например, если ввести имя пользователя myid и сайт myexample, то полным именем будет myexample\myid.

  5. В новом окне браузера перейдите по URL-адресу, показанному в поле Имя узла FTP или Имя узла FTPS на странице Обзор для вашего приложения.

  6. Выполните вход с использованием учетных данных FTP, созданных ранее (включая имя приложения в виде префикса к имени пользователя).

    В браузере отображается корневая папка приложения.

  7. Откройте папку LogFiles .

    Откройте папку LogFiles

  8. Откройте папку с именем W3SVC плюс числовое значение.

    Откройте папку W3SVC

    Папка содержит XML-файлы, связанные с любыми ошибками, которые были зарегистрированы после включения трассировки неудачно завершенных запросов, а также XSL-файл, который может использоваться браузером для форматирования XML.

    Папка W3SVC

  9. Щелкните XML-файл, связанный с неудачно завершенным запросом, данные трассировки которого необходимо просмотреть.

    На следующем рисунке показана часть сведений трассировки примерной ошибки.

    Трассировка неудачно завершенных запросов в браузере

Next Steps

Вы видели, как Visual Studio позволяет легко просматривать журналы, созданные приложением Службы приложений. В следующих разделах содержатся ссылки на дополнительные ресурсы на связанные темы:

  • Устранение неполадок Службы приложений
  • Отладка в Visual Studio
  • Удаленная отладка в Azure
  • Трассировка в приложениях ASP.NET
  • Анализ журналов веб-сервера
  • Анализ журналов трассировки неудачно завершенных запросов
  • Отладка облачных служб

Устранение неполадок Службы приложений

Дополнительную информацию об устранении неполадок, связанных с приложениями в Службе приложений Azure, см. в следующих ресурсах:

Справочные данные об определенном вопросе, связанном с устранением неполадок, можно получить, начав беседу на одном из следующих форумов:

Отладка в Visual Studio

Дополнительные сведения об использовании режима отладки в Visual Studio см. в статьях Отладка в Visual Studio и Debugging Tips with Visual Studio 2010 (Рекомендации по отладке в Visual Studio 2010).

Удаленная отладка в Azure

Для получения дополнительных сведений об удаленной отладке для приложений Azure и веб-заданий см. следующие ресурсы:

Если в вашем приложении используется веб-API Azure или серверная часть мобильных служб, вы можете получить дополнительные сведения об отладке в разделе Отладка серверной части .NET в Visual Studio.

Трассировка в приложениях ASP.NET

В Интернете отсутствуют обновленные и подробные вводные данные по трассировке ASP.NET. Лучшее, что можно сделать, это начать со старых вводных материалов, написанных для Web Forms, так как тогда MVC еще не существовало. А также дополнить эти сведения новыми постами из блогов, посвященных тем или иным конкретным вопросам. Можно также продуктивно начать изучение со следующих ресурсов:

Для ведения журнала ошибок вместо написания своего кода трассировки можно использовать платформу ведения журналов с открытым кодом, например ELMAH. Дополнительные сведения см. в записях блога Скотта Хансельмана (Scott Hanselman), посвященных ELMAH.

Кроме того, не нужно использовать ASP.NET или трассировку System.Diagnostics, чтобы получить журналы потоковой передачи из Azure. Служба потоковой передачи журналов приложения Службы приложений будет передавать любые .txt-, .html- или .log-файлы, которые будут найдены в папке LogFiles. Поэтому можно создать собственную систему ведения журнала, которая записывает данные в файловую систему приложения, а файлы будут автоматически передаваться и скачиваться. Все, что нужно сделать, — это написать код приложения, который создает файлы в папке d:\home\logfiles.

Анализ журналов веб-сервера

Дополнительные сведения об анализе журналов веб-сервера см. на следующих ресурсах:

Анализ журналов трассировки неудачно завершенных запросов

Веб-сайт Microsoft TechNet содержит раздел Using Failed Request Tracing (Использование трассировки неудачно завершенных запросов), который может оказаться полезным для понимания того, как используются эти журналы. Но эта документация посвящена преимущественно настройке трассировки неудачно завершенных запросов в IIS, которую невозможно выполнить в Службе приложений Azure.