» ASP
для новичков
» Главная
страница
»
ASP
для новичков
Отладка приложений
Следует признать, что наличие
ошибок является, пожалуй, неотъемлемой частью программных продуктов. Уильям
Гейтс недавно заявил, что "безошибочность кода можно гарантировать, если код
занимает не более пяти строк". Утверждение, конечно, нельзя назвать точным, но
немалая доля истины в нем есть. Поэтому без отладки приложений ни один
разработчик не сможет обойтись.
Традиционно отладка Web-приложений
являлась достаточно трудной в силу специфики их работы. Естественно, исполнение
Web-приложений в пошаговом режиме так и остается пока недостижимой мечтой, но
содержимое различных переменных разработчики могли получить. При этом
приходилось либо подавлять вывод основной информации, замещая ее содержимым
переменных, либо комбинировать основное содержимое страниц с переменными. После
завершения отладки требовалось вычищать все отладочные инструкции из кода
приложения, что опять отнимало драгоценное время разработчика.
ASP.NET облегчило жизнь
программистам и в этом аспекте. Теперь механизмы отладки встроены в ASP.NET и
позволяют без затруднений выводить самую разнообразную справочную информацию
вместе с основным содержимым Web-страниц, а по завершении сеансов отладки
практически мгновенно избавляться от ее следов.
Отладка в ASP.NET разбита на два
уровня. Программист может использовать отладку на уровне отдельных страниц
(Page-level tracing) или на уровне всего приложения (Application-level
tracing). Понятно, что отладка на уровне отдельных страниц предназначена для
выявления локальных проблем, а отладка на уровне приложения применяется в тех
случаях, когда разработчик подозревает, что проблема не локализована в одной
Web-странице.
Рассмотрение отладки мы начнем,
естественно, с уровня страниц. Достаточно в HTML-код страницы добавить в раздел
объявления ASP-страницы <%раде ...%> параметр тгасе="Тгие". И в этом
случае вместе с основным содержимым страницы будет отображена отладочная
информация. HTML-код простейшей страницы, которая выводит отладочную информацию,
приведен в листинге 3.55.
Листинг 3.55
<%@ Page Language="vb"
AutoEventWireup="false"
Codebehind="WebForml . aspx. vb"
Inherits="tracing.WebForml"
traceMode="SortByCategory" trace="True"%>
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.0 Transitional //EN">
<HTML>
<HEAD>
<title>
</title>
<meta name= "GENERATOR"
content="Microsoft Visual Studio. NET 7.0">
<meta name="CODE_LANGUAGE"
content="Visual Basic 7.0">
<meta
name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema"
content="http:/ /schemas.microsoft.com/intellisense/ie5">
''</HEAD>
<body
MS_POSITIONING="GridLayout">
Отлаживаемая страница
<form id="Forml" method="post"
runat=" server ">
snbsp;
</form>
</body>
</HTML>
Казалось бы, что эта Web-страница
чрезвычайно проста, однако при просмотре ее в браузере отображается просто
огромное количество отладочной информации Помимо этой возможности разработчик
имеет возможность создавать свои собственные отладочные сообщения,
воспользовавшись методами Trace.write и Trace.warn. Эти методы, естественно,
вызываются в различных процедурах класса, реализующего искомую Web-страницу. В
качестве параметров этим методам передается два значения типа string. Первая
строка содержит наименование категории, в которой необходимо будет отобразить
отладочное сообщение, а второй параметр содержит текст отладочного сообщения.
Единственное отличие между этими методами состоит в том, что метод Trace.write
выводит сообщения символами черного цвета, а метод Trace.Warn для этого
использует символы красного цвета.
Для того чтобы убрать все
отладочные сообщения с Web-страниц, достаточно удалить параметр Trace из
объявления Web-страницы, и приложение готово к выполнению.
В том случае, если разработчику
необходимо проверять все запросы, выполняемые в ходе работы приложения, следует
использовать отладку на уровне приложения. Этот механизм запускается при помощи
конфигурационного файла config.Web. В предыдущем разделе мы упоминали блок
<trace>, который
позволяет задавать параметры отладки уровня приложения. Для того чтобы эта
отладка выполнялась, следует указать некоторые параметры у этого тега.
Возможный вариант объявления этого раздела может выглядеть »следующим образом:
<trace
enabled="true"
traceMode="SortByCategory" requestLimit="40"
pageOutput=" false"
Iocal0nly="true" />
В этом маленьком примере
перечислены все используемые параметры раздела <tracing>. Рассмотрим их.
- enabled. Параметр имеет только два
значения — true и false. В том случае, если используется значение true, механизм
отладки запускается.
- pageOutput Параметр позволяет разработчику определять, где именно будут
выводиться отладочные сообщения. Если используется значение true, то они будут
отображаться на Web-страницах, если используется значение false, то вся
отладочная информация будет отображена на отдельной Web-странице, которая носит
наименование trace. axd и расположена в корневом каталоге Web-приложения.
- requestLimit. Значением этого параметра является целое положительное число.
Оно устанавливает максимальное количество запросов к серверу, отладочная
информация о которых будет отображена на страницах приложения.
- traceMode. Параметр задает порядок сортировки отладочных сообщений. Если
используется значение SortByTime, то все сообщения будут отображены в
хронологическом порядке, если же разработчик укажет значение SortByCategory, то
сообщения будут сгруппированы по категориям.
- locaioniy. Параметр имеет только два значения — true и false. В том случае,
если разработчик установил значение true, обрабатываются только локальные
запросы.
Если мы используем именно ту
комбинацию параметров, которая была приведена в примере, то на Web-страницах
приложения отладочная информация не будет отображаться. Для того чтобы получить
к ней доступ, необходимо просмотреть в браузере файл с наименованием trace. axd.
Видно, что данная страница
показывает краткую информацию об одном запросе. Впрочем, если необходимо
получить более детальную информацию о каком-либо запросе, следует
воспользоваться гиперссылкой, расположенной в правой части таблицы, напротив
наименования искомого запроса. В этом случае разработчику будет
предоставлена самая детальная отладочная информация.
Следующий
урок
|