Как открыть окно ошибок в visual studio

I’ve been using Visual Studio (2017) for quite a long time now, to program mostly in C#, for Unity games. Recently though, I noticed that it was not displaying any errors in the code anymore, or at least most of them. I initially started making some small tests, for example removing variables that were being used multiple times in the scripts. Visual Studio was not showing any errors, while when going back to Unity, it was showing all the correct errors in the console (as always). Instead, if I tried to remove a parenthese, it was, after a bit, showing errors all over the place. Again, it was really strange.

After one day, I was still testing, and I noticed that if I first opened Visual Studio, and then in «recent» I clicked on the the .sln file, that opened all the scripts for one Unity project, it was immediately showing all the right errors, like it had always done and how (I think) it should always do. I started looking for some differences between what I was seeing there, and what I was seeing when opening the .cs files (in the way that wasn’t working):

  • At the top, I wasn’t seeing «Debug» and «Any CPU» how I was when it was working:

enter image description here
enter image description here

  • Another thing was that, between the «Project» and the «Debug» buttons (at the top, that open the drop-down lists), I didn’t have the «Compile» button.

  • Also, under the the «Debug» drop-down many options like «start debug» were not available / disabled.

  • At the top left, under the left-most script name, I have «External files» instead of «Assembly-CSharp»

  • At the right of where there should be «Debug» and «Any CPU», I have «Connect» instead of «Start» (Or something similar, my system’s language is not english, these are translations)

Another (maybe less relevant) thing that has changed from before, when it was working:

  • I have installed Visual Studio 2019, and uninstalled after a few minutes (I’ve always preferred Visual Studio 2017!).

Programming without seeing the errors realtime takes much more time, so I’d really like to fix this problem, if it is possible to do so. Is there anything that I have to activate? Did I accidentally press a combination of keys?

Thanks in advance! :)

title description ms.date ms.topic helpviewer_keywords ms.assetid author ms.author manager ms.technology ms.workload

Error List Window

Learn about the Error List window and how to use it to perform tasks related to resolving the errors it displays.

11/04/2016

reference

Task List

build errors

Error List window

errors [Visual Studio], Error List window

b7f6d45a-733b-4ad8-bc2f-737a37509e56

TerryGLee

tglee

jmartens

vs-ide-general

multiple

Error List Window

[!INCLUDE Visual Studio]

[!NOTE]
The Error List displays information about a specific error message. You can copy the error number or error string text from the Output window. To display the Output window, press Ctrl+Alt+O. See Output window.

The Error List window lets you perform the following tasks:

  • Display the errors, warnings, and messages produced while you write code.

  • Find syntax errors noted by IntelliSense.

  • Find deployment errors, certain Static Analysis errors, and errors detected while applying Enterprise Template policies.

  • Double-click any error message entry to open the file where the problem occurs, and move to the error location.

  • Filter which entries are displayed, and which columns of information appear for each entry.

  • Search for specific terms and scope the search to just the current project or document.

To display the Error List, choose View > Error List, or press Ctrl++E.

You can choose the Errors, Warnings, and Messages tabs to see different levels of information.

To sort the list, click any column header. To sort again by an additional column, hold down the Shift key and click another column header. To select which columns are displayed and which are hidden, choose Show Columns from the shortcut menu. To change the order in which columns are displayed, drag any column header to the left or right.

Error List Filters

There are two types of filter in two dropdown boxes, one on the right side of the toolbar and one to the left of the toolbar. The dropdown list on the left side of the toolbar specifies the set of code files to use (Entire Solution, Open Documents, Current Project, Current Document).

You can restrict the scope of the search to analyze and act on groups of errors. For example, you might want to focus on core errors that are preventing a project from compiling. The scoping options include:

  1. Open Documents: Show errors, warnings, and messages for the open documents.

  2. Current Project: Show errors, warnings, and messages from the project of the currently selected document in the Editor or the selected project in Solution Explorer.

    [!NOTE]
    The filtered list of errors, warnings, and messages will change if the project of the currently selected document is different from the project selected in Solution Explorer.

  3. Current Document: Show errors, warnings, and messages for the currently selected document in the Editor or Solution Explorer.

If a filter is currently applied to the search result, the name of the filter appears in the Error List title bar. The Errors, Warnings, and Messages buttons then display the number of filtered items being shown along with the total number of items. For example, the buttons show «x of y Errors». If no filter is applied, the title bar says only «Error List».

The list on the right side of the toolbar specifies whether to show errors from the build (errors resulting from a build operation) or from IntelliSense (errors detected before running a build), or from both.

Search

Use the Search Error List text box on the right side of the Error List toolbar to find specific errors in the error list. You can search on any visible column in the error list, and search results are always sorted based on the column that has sort priority instead of on the query or the filter applied. If you choose the Esc key while the focus is in the Error List, you can clear the search term and filtered search results. You can also click the X on the right side of the text box to clear it.

Save

You can copy the error list and save it to a file. Select the errors you want to copy and right-click the selection, then on the context menu select Copy. You can then paste the errors into a file. If you paste the errors to an Excel spreadsheet, the fields appear as different columns.

UI Element List

Severity

Displays the different types of Error List entry (Error, Message, Warning, Warning (active), Warning (inactive).

Code

Displays the error code.

Description

Displays the text of the entry.

Project

Displays the name of the current project.

File

Displays the file name.

Line

Displays the line where the problem occurs.

I’ve been using Visual Studio (2017) for quite a long time now, to program mostly in C#, for Unity games. Recently though, I noticed that it was not displaying any errors in the code anymore, or at least most of them. I initially started making some small tests, for example removing variables that were being used multiple times in the scripts. Visual Studio was not showing any errors, while when going back to Unity, it was showing all the correct errors in the console (as always). Instead, if I tried to remove a parenthese, it was, after a bit, showing errors all over the place. Again, it was really strange.

After one day, I was still testing, and I noticed that if I first opened Visual Studio, and then in «recent» I clicked on the the .sln file, that opened all the scripts for one Unity project, it was immediately showing all the right errors, like it had always done and how (I think) it should always do. I started looking for some differences between what I was seeing there, and what I was seeing when opening the .cs files (in the way that wasn’t working):

  • At the top, I wasn’t seeing «Debug» and «Any CPU» how I was when it was working:

enter image description here
enter image description here

  • Another thing was that, between the «Project» and the «Debug» buttons (at the top, that open the drop-down lists), I didn’t have the «Compile» button.

  • Also, under the the «Debug» drop-down many options like «start debug» were not available / disabled.

  • At the top left, under the left-most script name, I have «External files» instead of «Assembly-CSharp»

  • At the right of where there should be «Debug» and «Any CPU», I have «Connect» instead of «Start» (Or something similar, my system’s language is not english, these are translations)

Another (maybe less relevant) thing that has changed from before, when it was working:

  • I have installed Visual Studio 2019, and uninstalled after a few minutes (I’ve always preferred Visual Studio 2017!).

Programming without seeing the errors realtime takes much more time, so I’d really like to fix this problem, if it is possible to do so. Is there anything that I have to activate? Did I accidentally press a combination of keys?

Thanks in advance! :)

I’ve been using Visual Studio (2017) for quite a long time now, to program mostly in C#, for Unity games. Recently though, I noticed that it was not displaying any errors in the code anymore, or at least most of them. I initially started making some small tests, for example removing variables that were being used multiple times in the scripts. Visual Studio was not showing any errors, while when going back to Unity, it was showing all the correct errors in the console (as always). Instead, if I tried to remove a parenthese, it was, after a bit, showing errors all over the place. Again, it was really strange.

After one day, I was still testing, and I noticed that if I first opened Visual Studio, and then in «recent» I clicked on the the .sln file, that opened all the scripts for one Unity project, it was immediately showing all the right errors, like it had always done and how (I think) it should always do. I started looking for some differences between what I was seeing there, and what I was seeing when opening the .cs files (in the way that wasn’t working):

  • At the top, I wasn’t seeing «Debug» and «Any CPU» how I was when it was working:

enter image description here
enter image description here

  • Another thing was that, between the «Project» and the «Debug» buttons (at the top, that open the drop-down lists), I didn’t have the «Compile» button.

  • Also, under the the «Debug» drop-down many options like «start debug» were not available / disabled.

  • At the top left, under the left-most script name, I have «External files» instead of «Assembly-CSharp»

  • At the right of where there should be «Debug» and «Any CPU», I have «Connect» instead of «Start» (Or something similar, my system’s language is not english, these are translations)

Another (maybe less relevant) thing that has changed from before, when it was working:

  • I have installed Visual Studio 2019, and uninstalled after a few minutes (I’ve always preferred Visual Studio 2017!).

Programming without seeing the errors realtime takes much more time, so I’d really like to fix this problem, if it is possible to do so. Is there anything that I have to activate? Did I accidentally press a combination of keys?

Thanks in advance! :)

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

Отладка кода — это один из самых важных процессов. Без отладки в свет не выходит ни одно нормальное приложение. Потому что, независимо от опыта разработчика, код не всегда работает так, как нужно. А иногда и вообще работает совершенно не так. Вот тут как раз и приходит на помощь отладчик, который позволит разобраться, что не так, и найти изъяны. Можно, конечно, много часов провести за самостоятельным выявлением багов, но отладчиком все-таки быстрее и проще.

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

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

Перед стартом отладки вашего кода не лишним было бы для себя выяснить, существует ли какая-то проблема с вашим кодом? Для чего вам нужна отладка? Если есть какие-то проблемы в работе вашего ПО и вы хотите найти их, используя отладчик Visual Studio, нужно понять, в чем суть проблемы. Возможно, есть проблемы, которые отладчик не определит, например:

  • орфографические ошибки или опечатки,
  • неправильно подключенные API,
  • неправильное размещение последних корректировок в код,
  • и др.

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

Прежде чем запускать отладчик Visual Studio, не лишним будет проверить код редактором кода и визуально оценить. Нужно искать «красные» и «зеленые»линии. «Красные» линии — это ошибки. «Зеленые» предупреждения. Это могут быть:

  • ошибка компиляции;
  • ошибка преобразования типа;
  • код не поддерживает синтаксис;
  • и др.

«Красные» волнистые линии нужно исправить это поможет в дальнейшем уменьшить количество ошибок, найденных Visual Studio. А зеленые, если не получается исправить, то по крайней мере нужно тщательно изучить.

Как запустить отладчик Visual Studio

Чтобы запустить отладчик Visual Studio, нужно:

  1. Запустить саму программу Visual Studio.
  2. Открыть код приложения, который необходимо отладить.
  3. Потом при помощи нажатия клавиши «F5» запустить режим отладки. Также это можно сделать через меню, если нажать «Отладка», а потом «Начать отладку».

Начнется процесс отладки. При возникновении ошибок отладчик Visual Studio покажет вам строку их проявления и предоставит вам информацию о том, что произошло. Для более точного изучения кода вы можете расставить точки останова. Это те точки в коде, где отладчик Visual Studio остановит свою работу, а у вас появится возможность детальнее изучить:

  • последовательность исполнения кода;

  • работу памяти;

  • значение переменных и др.

Чтобы создать точку останова в отладчике, нужно кликнуть слева от интересующей вас строки кода или при помощи клавиши «F9».

Бывает такое, что сразу выявить ошибки не получается при помощи отладчика, но приложение все равно не работает корректно. Тогда вам тоже смогут помочь точки останова. Нужно выставить их перед выполнением проблемного кода, а потом запустить отладчик Visual Studio в построчном выполнении программы для детализированного анализа, и тогда баг проявится.

Какая информация выводится отладчиком Visual Studio

Итак, вы выставили несколько точек останова и запустили процесс отладки. На каждой точке останова Visual Studio будет останавливаться. В эти моменты вам будет доступна определенная информация. Чтобы ее просмотреть, нужно кликнуть кнопку «Debug» на панели инструментов и найти «Windows». Получите бонус от Пин ап казино 100% от первого депозита с вейджером отыгрыша x35 на 72 часа! Только на официальном сайте Pin Up лучшие игровые автоматы, рулетка и живые диллеры.

Там вам будет доступна следующая информация:

  1. Breakpoints. Тут собраны сведения о ваших точках останова.
  2. Output. Здесь выводятся служебные сообщения от самой Visual Studio.
  3. Watch. Здесь расположены переменные, за которыми вы наблюдаете в коде; внести их можно только вручную.
  4. Autos. Здесь находится список переменных, с которыми прямо сейчас проводится работа.
  5. Locals. Здесь выводятся все локальные переменные.
  6. Immediate. Здесь выводятся переменные, которые вы требуете.
  7. Call Stack. Здесь расположен список вызываемых функций.
  8. Threads. Тут выводится информация об уже стартовавших потоках вашего приложения.
  9. Modules. Отображаются все загруженные модули.
  10. Processes. Отображаются процессы модулей.
  11. Memory. Отображается память рассматриваемых модулей.
  12. Disassembly. Тут можно увидеть, как отображается ваш код на языке более высокого уровня.
  13. Registers. Выводится регистр значения.

В заключение

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

title description ms.assetid ms.devlang ms.topic ms.date ms.custom ms.openlocfilehash ms.sourcegitcommit ms.translationtype ms.contentlocale ms.lasthandoff ms.locfileid

Устранение неполадок с помощью Visual Studio

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

def8e481-7803-4371-aa55-64025d116c97

dotnet

article

08/29/2016

devx-track-csharp, seodec18

65eb4e8fefb74219c927fe507baceca7c55462be

910a1a38711966cb171050db245fc3b22abc8c5f

MT

ru-RU

03/20/2021

101095715

Обзор

В этом руководстве показано, как использовать инструменты 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

:::image type=»content» source=»./media/web-sites-dotnet-troubleshoot-visual-studio/genericerror.png» alt-text=»Снимок экрана: ошибка сервера в приложении «/» в веб-браузере.»:::

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

:::image type=»content» source=»./media/web-sites-dotnet-troubleshoot-visual-studio/genericerror1.png» alt-text=»Снимок экрана, показывающий пример универсальной ошибки, возникающей в веб-браузере.»:::

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

:::image type=»content» source=»./media/web-sites-dotnet-troubleshoot-visual-studio/genericerror2.png» alt-text=»Снимок экрана, показывающий веб-сайт, не может отобразить ошибку страницы в веб-браузере.»:::

Подробное сообщение об ошибке, как правило, содержит полезные сведения для ее устранения. На предыдущих снимках экрана показано, как включить эту функцию. Для этого необходимо внести изменения в развернутый файл 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. Обновите окно браузера, в котором отображается неинформативное сообщение. Вы увидите подробную информацию об ошибке, как в следующем примере:

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

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

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

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

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

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

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

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

  2. Откройте файл ControllersHomeController.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. В обозревателе сервера щелкните правой кнопкой мыши приложение и выберите Подключить отладчик.

    :::image type=»content» source=»./media/web-sites-dotnet-troubleshoot-visual-studio/tws-attachdebugger.png» alt-text=»Снимок экрана обозреватель сервера окна, в котором выбрано приложение, и нажмите кнопку присоединить отладчик.»:::

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

    [!NOTE]
    При возникновении сложностей с запуском отладчика попробуйте сделать это с помощью 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. Установите точку останова в первом операторе метода GnerateThumbnail.

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

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

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

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

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

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

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

    :::image type=»content» source=»./media/web-sites-dotnet-troubleshoot-visual-studio/wjattach.png» alt-text=»Снимок экрана обозреватель сервера, в котором отображается 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. Откройте ControllersHomeController.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).

    :::image type=»content» source=»./media/web-sites-dotnet-troubleshoot-visual-studio/tws-traceaxd1.png» alt-text=»Снимок экрана: страница «трассировка приложения» в веб-браузере, в которой отображаются сведения о представлении, выбранные в первой строке.»:::

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

    :::image type=»content» source=»./media/web-sites-dotnet-troubleshoot-visual-studio/tws-traceaxd2.png» alt-text=»Снимок экрана страницы сведений о запросе в веб-браузере, в котором отображается сообщение, выделенное в разделе «сведения о трассировке».»:::

    По умолчанию 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. В обозревателе сервера щелкните правой кнопкой мыши приложение и выберите Просмотр журналов потоковой передачи.

    :::image type=»content» source=»./media/web-sites-dotnet-troubleshoot-visual-studio/tws-viewlogsmenu.png» alt-text=»Снимок экрана обозреватель сервера после щелчка приложения правой кнопкой мыши с отображением журналов потоковой передачи, выбранных в новом окне.»:::

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

    :::image type=»content» source=»./media/web-sites-dotnet-troubleshoot-visual-studio/tws-nologsyet.png» alt-text=»Снимок экрана: окно вывода с примером подключения к службе потоковой передачи журналов со строками уведомления.»:::

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

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

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

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

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

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

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

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

    Уровень трассировки "Подробно"

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

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

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

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

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

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

:::image type=»content» source=»./media/web-sites-dotnet-troubleshoot-visual-studio/tws-icons.png» alt-text=»Снимок экрана, показывающий кнопки и текстовое поле на вкладке «журналы 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. В окне Вывод щелкните Загрузить журналы потоковой передачи.

    :::image type=»content» source=»./media/web-sites-dotnet-troubleshoot-visual-studio/tws-downloadicon.png» alt-text=»Снимок экрана: окно вывода с выделенной кнопкой «скачать журналы потоковой передачи».»:::

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

    :::image type=»content» source=»./media/web-sites-dotnet-troubleshoot-visual-studio/tws-downloadedfile.png» alt-text=»Снимок экрана папки «загрузки» в проводнике с выбранным загруженным файлом.»:::

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

    :::image type=»content» source=»./media/web-sites-dotnet-troubleshoot-visual-studio/tws-logfilefolders.png» alt-text=»Снимок экрана со структурой папки ZIP-файла после извлечения файла.»:::

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

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

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

      (Папка 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

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

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

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

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

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

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

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

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

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

    Папка W3SVC

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

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

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

Дальнейшие действия

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

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

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

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

  • Мониторинг приложений
  • Исследование проблемы утечки памяти в Службе приложений Azure с использованием Visual Studio 2013. Запись блога Microsoft ALM о функциях Visual Studio для анализа проблем с управляемой памятью.
  • Онлайн-инструменты Службы приложений Azure, о которых вам следует знать. Запись в блоге Амита Эппла (Amit Apple).

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

  • Форум Azure на веб-сайте ASP.NET.
  • Форум Azure в Microsoft Q&а.
  • StackOverflow.com.

Отладка в Visual Studio

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

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

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

  • Общие сведения об удаленной отладке Службы приложений Azure.
  • Общие сведения об удаленной отладке Службы приложений Azure (часть 2) — подробнее об удаленной отладке
  • Общие сведения об удаленной отладке Службы приложений Azure (часть 3) — среда с несколькими экземплярами и GIT
  • Отладка веб-заданий (видео)

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

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

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

  • Мониторинг и телеметрия (создание реальных облачных приложений в Azure).
    Глава электронной книги с рекомендациями по трассировке в облачных приложениях Azure.

  • Трассировка ASP.NET
    Старый, но по-прежнему хороший ресурс для введения в тему.

  • Прослушиватели трассировки
    Сведения о прослушивателях трассировки, но без упоминания WebPageTraceListener.

  • Пошаговое руководство: интеграция трассировки ASP.NET с трассировкой System.Diagnostics
    Это также старая статья, которая, однако, содержит некоторые дополнительные сведения, которые не освещаются во вводной статье.

  • Трассировка в представлениях ASP.NET MVC Razor
    Помимо трассировки в представлениях Razor, в этом посте также описывается, как создать фильтр ошибок, чтобы регистрировать все необработанные исключения в приложении MVC. Сведения о записи в журнал всех необработанных исключений в приложении Web Forms представлены в примере Global.asax в разделе Полный пример для обработчиков ошибок на сайте MSDN. Если в MVC или Web Forms понадобится зарегистрировать определенные исключения, но позволить платформе их обрабатывать, можно перехватить и повторно создать элементы, как показано на следующем примере:

    try
    {
       // Your code that might cause an exception to be thrown.
    }
    catch (Exception ex)
    {
        Trace.TraceError("Exception: " + ex.ToString());
        throw;
    }
  • Потоковая передача диагностических журналов трассировки из командной строки Azure (включая Glimpse!)
    Как использовать командную строку, чтобы сделать все, что показано в этом руководстве на примере Visual Studio. Glimpse – это средство для отладки приложений ASP.NET.

  • Использование функций диагностики и ведения журнала для веб-приложений с Дэвидом Эббо (David Ebbo) и Потоковая передача журналов из веб-приложений с Дэвидом Эббо (David Ebbo)
    Авторы видео: Скотт Хансельман (Scott Hanselman) и Дэвид Эббо (David Ebbo).

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

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

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

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

  • LogParser
    Инструмент для просмотра данных в журналах веб-сервера (LOG -файлов).
  • Устранение проблем производительности IIS или ошибок приложений с помощью LogParser
    Введение в средство LogParser, которое можно использовать для анализа журналов веб-сервера.
  • Записи блога Роберта Мак-Мюррея (Robert McMurray), посвященные использованию LogParser
  • Код состояния HTTP в IIS 7.0, IIS 7.5 и IIS 8.0

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

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

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

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

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

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

Начало
сеанса отладки

Первый шаг отладки
приложения – это выбор команды Start
Debugging
(F5) на стандартной
панели инструментов или в меню Debug,
после чего приложение запускается в
режиме отладки.

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

Установка
точек останова

Для того чтобы
отладчик прерывал выполнение программы
на определенной строке, необходимо
установить на этой строке точку
останова
.
Точка останова
– это просто
место (например, строка с оператором
программы), которое помечено для отладчика
и отображается красным кружком в поле
индикаторов
(узкое
поле серого цвета с левого края окна
редактора кода). Когда отладчик встречает
точку останова, то выполняющаяся
программа моментально останавливается
(до выполнения данной строки кода).

Установить точку
останова на какой-либо строке кода можно
при помощи щелчка по полю индикаторов
данной строки (рис. 16). Либо можно
установить курсор на нужной строке и
нажать клавишу F9.

Рисунок
16.
Установка
точки останова

Просмотр
данных в отладчике

Когда выполнение
программы в сеансе отладки приостановлено
(например,
при помощи точки
останова), можно
изучить состояние и содержимое ее
переменных и объектов.
Для этого в VS
можно использовать
три вида окон:
Local
(Локальные)
,
Autos
(Видимые)
и Watch
(Контрольные).

Доступ к окнам можно
получить нажав
Debug->Windows->выбрать
нужное окно(Рис. 17)

Рисунок 17. Доступ к
окнам

Окно Local
показывает
все переменные и их значения для текущей
области видимости отладчика.
Это дает вам
представление обо всем,
что имеется в
текущей выполняющейся функции.
Переменные в
этом окне организованы в список и
автоматически настраиваются отладчиком.
На рис.
18 показан пример
окна Local.
С его помощью
можно увидеть приложение нашего примера,
которое
приостановлено до обнуления соответствующих
элементов массива.
Обратите внимание,
что объект
(массив)
a
развернут для
того, чтобы
показать значения его элементов в момент
остановки выполнения программы.
По мере установки
значений результаты будут отображаться
в столбце Value.

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

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

показано окно Autos
для той же
самой строки кода, которая показана на
рис. 18. Обратите внимание на разницу.

Окна Watch
в VS позволяют
настраивать собственный список переменных
и выражений, за которыми нужно наблюдать
(рис. 20). Окна Watch
выглядят и
ведут себя точно так же, как и окна Local
и Autos.
Кроме того, те элементы, которые вы
размещаете в окнах Watch,
сохраняются между сеансами отладки.

Рисунок
18.
Окно
Local

Рисунок
19.
Окно
Autos

Вы получаете доступ
к окнам Watch
из меню или панели инструментов Debug
(рис. 17).
Четыре окна Watch
(которые называются Watch
1
, Watch
2
, Watch
3
и Watch
4
) позволяют
настроить четыре списка элементов, за
которыми необходимо наблюдать. Эта
возможность может быть особенно полезна
в том случае, когда каждый список
относится к отдельной области видимости
вашего приложения.

Переменную или
выражение в окно Watch
1
можно добавить
из редактора кода. Для этого в редакторе
кода выделите переменную (или выражение),
щелкните по ней правой кнопкой мыши и
выберите пункт Add
Watch.
При этом выделенная переменная (или
выражение) будет помещена в окно Watch
1
. Вы можете
также перетащить выделенный элемент в
это окно.

Рисунок
20.
Окно
Watch
1

Пошаговое
прохождение для поиска ошибки

После того как в
нашем примере отладчик,
встретив точку
останова, прервал
выполнение программы,
далее можно
выполнять код по шагам (режим
трассировки
).
Для этого можно
выбрать команду Step
into
на панели
инструментов Debug
или нажать
функциональную клавишу F11(Рис.
21). Это приведет
к последовательному выполнению кода
по одной строке,
что позволит
вам видеть одновременно и ход выполнения
приложения, и
состояние объектов программы по мере
выполнения кода.
Команда Step
into
(F11) позволяет
продвигаться по коду по одной строке.
Вызов этой
команды выполнит текущую строку кода
и поместит курсор на следующую выполняемую
строку. Важное
различие между Step
into
и другими
похожими командами состоит в

том,
как Step
into
обрабатывает
строки кода, в
которых содержатся вызовы функций.
Если вы находитесь
на строке кода,
которая вызывает
другую функцию программы,
то выполнение
команды Step
into
перенесет вас
на первую строку этой функции.

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

Команда Step
out
(F10) позволяет
вам сохранять фокус в текущей функции
(не заходя в вызываемые ею подпрограммы),
т. е. вызов Run
out
приведет к
выполнению строки за строкой, но не
заведет вас в вызовы функций и при этом
следующей выполняемой

строкой для пошагового
прохождения станет следующая за вызовом
функции строка.

Рис 21. Команда Step
Into

Одной из более
удобных (и
часто упускаемых)
функциональных
возможностей набора инструментов
отладки является функция Run
to
cursor
( Выполнить до текущей позиции)
.
Она работает в
полном соответствии со своим названием.
Вы устанавливаете
курсор на некий код и вызываете эту
команду. Приложение
компилируется и выполняется до тех пор,
пока не доходит
до той строки,
где находится
курсор. В
этой точке отладчик прерывает приложение
и выдает вам эту строку кода для пошагового
прохождения.
Рис. 22.

Рисунок 22. Вызов
команды Run
To
Cursor

Продолжить отладку
после точки останова можно повторным
нажатием на кнопку F5 (Start
Debugging).

Рисунок 23. Результат
работы программы после исправления
ошибки

Рассмотрим пошаговое
выполнение программы с использованием
окна Watch
на простейшем примере.

Пример.

#include
«stdafx.h»

#include
«conio.h»

int
_tmain(int argc, _TCHAR* argv[])

{

int
a,S,i,b;

a=0;

b=0;

i=0;

S=1;

do

{

a=a+1;

b=b+2;

S=(S*a)+(S/b);

i++;

}while(i<5);

printf(«%d»,S);

getch();

return
0;

}

Запускаем
трассировку(Step
Into
)
нажатием
F11 либо
Debug>Step
Into
.
Открываем
окно Watch(Debug>Windows>Watch>Watch1).
Переход на
следующий шаг осуществляется нажатием
кнопки F11.

Рисунок 24. Окно
редактора кода в начале трассировки.

Рисунок 25. Значение
переменных перед первым прохождением
цикла

Рисунок 26. Окно
редактора кода перед первым прохождением
цикла

Рисунок
27. Значения переменных после выполнения
операции а=а+1

Рисунок
28. Значения переменных после выполнения
операции b=b+2

Рисунок
29. Значения переменных после выполнения
операции S=(S*a)+(S/b)

Рисунок
30. Значения переменных после выполнения
операции i++

Рисунок
31. Значения переменных после прохождения
цикла

Рисунок 32. Вывод
итогового значения на экран

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Я использую Visual Studio (2017) довольно давно, чтобы программировать в основном на C# для игр Unity. Однако недавно я заметил, что он больше не отображает никаких ошибок в коде, или, по крайней мере, большинство из них. Сначала я начал делать небольшие тесты, например, удаляя переменные, которые многократно использовались в скриптах. Visual Studio не показывала никаких ошибок, а при возврате в Unity отображала все правильные ошибки в консоли (как всегда). Вместо этого, если бы я попытался убрать круглую скобку, через некоторое время она показывала ошибки повсюду. Опять же, это было действительно странно.

Спустя один день я все еще проводил тестирование и заметил, что если я сначала открыл Visual Studio, а затем в «недавнем» щелкнул файл .sln, открывший все сценарии для одного проекта Unity, он сразу показал все правильные ошибки, как это было всегда и как (я думаю) всегда должно быть. Я начал искать некоторые различия между тем, что я там видел, и тем, что я видел при открытии файлов .cs (таким образом, который не работал):

  • Наверху я не видел «Отладка» и «Любой процессор», как это было, когда он работал:

  • Другое дело, что между кнопками«Проект» и «Отладка» (вверху, открывающими раскрывающиеся списки) у меня не было кнопки «Скомпилировать».

  • Кроме того, в раскрывающемсясписке «Отладка» многие параметры, такие как «начать отладку», были недоступны / отключены.

  • Вверху слева, подкрайним левым именем скрипта, у меня есть «Внешние файлы» вместо «Assembly-CSharp».

  • Справа от того места, где должны быть «Отладка» и «Любой процессор», у меня есть «Подключить» вместо «Пуск» (или что-то подобное, язык моей системы не английский, это переводы)

Еще одна (возможно, менее актуальная) вещь, которая изменилась по сравнению с предыдущим, когда работала:

  • Я установил Visual Studio 2019 и удалил его через несколько минут (я всегда предпочитал Visual Studio 2017!).

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

Заранее спасибо!:)

2020-05-27 17:34

9
ответов

Решение

Удаление файла.suo может помочь при неустойчивом поведении Visual Studio.

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

Если вы удалите его, новый файл.suo будет создан после повторного открытия решения в Visual Studio.

2020-06-04 12:53

Просто откройте форму списка ошибок View -> Error List или используйте ярлык Ctrl + , E

2020-05-27 18:50

У меня тоже была эта проблема. Для меня это было вызвано открытием проекта вместо решения. Когда я открыл решение (файл .sln), все функции редактора начали работать.



15 июл ’21 в 16:17
2021-07-15 16:17

2021-07-15 16:17

Вам нужно включить ошибки подчеркивания в параметрах редактора в Visual Studio.

Эти варианты можно найти здесь:

Инструменты> Параметры> Текстовый редактор> C# > Дополнительно> Справка редактора

2020-05-29 19:09

У меня была такая же проблема в предварительной версии VS 2022.

Решением было проверить: Инструменты -> Параметры -> Текстовый редактор -> Общие -> Показывать волнистые линии ошибок.

Диалог настроек



18 авг ’21 в 02:22
2021-08-18 02:22

2021-08-18 02:22

Перейдите к настройке, введите Error Squiggles в настройках поиска и включите его.

2021-11-17 21:18

Для меня это был файл, который не был включен в проект.

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

2022-07-07 09:24

Попробуйте удалить папку bin в каталоге проекта, это заставит перекомпилировать код.

Просто не забудьте сохранить в папке bin все файлы .dll, которые могли быть добавлены вручную. Вы можете увидеть их в разделе «Ссылки» в обозревателе решений и добавить их обратно после.

Visual Studio повторно создаст папку bin, не волнуйтесь!

2021-04-16 16:51

У меня была эта проблема какое-то время, и это было связано с моим решением. Я зашел в свой проект, провел анализ кода, а затем перенаправил его на более старую версию.

Понятия не имею, почему это сработало, но проблема устранилась.

2020-05-30 07:20

Понравилась статья? Поделить с друзьями:
  • Как открыть машинку атлант при ошибке f4
  • Как открыть машинку bosch при ошибке
  • Как открыть лог ошибок виндовс
  • Как открыть лог ошибок в windows 10
  • Как открыть консоль ошибок браузера яндекс