Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Разработка Web-приложений ASP.NET 2.0 в Visual Studio.NET 2005
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

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

Трассировка в ASP.NET 2.0, включение трассировки для страницы и приложения, объект Trace, просмотрщик trace.axd

Конечно же, в приложениях ASP.NET, как в любых приложениях, могут встречаться как ошибки компиляции, так и ошибки времени выполнения. Ошибки компиляции "ловятся" компилятором ASP.NET, а для ошибок времени выполнения используются объект Trace, объект Debug и некоторые средства VS.NET.

Трассировка определяется как получение информативных сообщений о выполнении Web-приложения. Эти сообщения позволяют выявить проблемы или проанализировать производительность. Для целей получения информации во время выполнения используются два объекта: Debug и Trace. Они и будут рассмотрены в этом модуле.

Что мы можем делать во время работы приложения:

·        получать значения переменных;

·        определять истинность/ложность определенных условий;

·        пошагово выполнять наше приложение в целях отладки.

Для этих целей используются объекты Trace и Debug.

В обычном ASP для вывода информации о работе приложения (на саму страницу или в другое место) использовались команды Response.Write. Применение объекта Trace имеет то преимущество, что отключить все, что относится к его работе, можно просто чуть изменив параметры в файле Web.config. В результате резко упрощается переход от окружения разработки к production.

Кроме того, при трассировке можно также использовать объект Debug. Все вызовы к этому объекту вообще работают только в отладочной конфигурации. В конфигурации Release они игнорируются.

При использовании этого объекта все сообщения выводятся в окне Output отладчика. Для использования этого объекта нужно импортировать пространство имен System.Diagnostics.

Трассировку можно включать на разных уровнях.

Первый уровень - уровень страницы. Для включения нужно установить атрибут Trace в директиве Page в True:

<%@ Page Language="vb" Trace="true" %>

После этого на странице можно использовать команды Trace.Write. После того, как атрибут Trace будет убран, эти команды можно не убирать - они будут просто игнорироваться.

Второй уровень - уровень приложения. Кроме того, что возможности объекта Trace включаются для всех страниц, в отличие от предыдущего уровня, мы получаем возможность записывать сообщения трассировки не только на страницы, но и в память. Просмотреть сообщения трассировки в памяти можно при помощи trace viewer уровня приложения - trace.axd.

Управление трассировкой уровня приложения - через файл Web.config. В нем нужно значение trace enabled переставить в true (по умолчанию оно в - false).

<configuration>

 <system.web>

   <trace enabled="true"/>

 </system.web>

</configuration>

Чтобы добавить возможность выводить информацию трассировки на страницы, нужно добавить код:

<trace enabled="true" pageOutput="true" />

(если pageOutput - в false, то информация будет выводиться только в память).

Чтобы сообщения трассировки были видны только на локальном компьютере, можно добавить следующий код:

<trace enabled="true" pageOutput="true" localOnly="true"/>

Для записи сообщений на страницу (или в память) используются методы Trace.Write и Trace.Warn (отличия между ними только в том, что Trace.Warn выводит сообщения красным цветом). Эти методы принимают два параметра:

Trace.Write (категория, сообщение)

Категория - это возможность рассортировать сообщения. Пример:

Trace.Write("Custom Trace", "Beginning User Code...")

Trace.Warn("Custom Trace", "Array count is null!")

Возможность проверить, включена ли трассировка для страницы или включить/выключить ее во время выполнения - свойство Trace.IsEnabled:

If Trace.IsEnabled Then

  strMsg = "Tracing is enabled!"

 Trace.Write("myTrace", strMsg)

End If

или

Trace.IsEnabled = False

Если включить трассировку на уровне Web-формы, то при этом будут выводиться не только сообщения трассировки, которые вы определили явно при помощи Trace.Warn и Trace.Write, но и множество автогенерируемых сообщений трассировки. Они разделены на несколько разделов:

·        Request Details - идентификатор сессии, время запроса, тип запроса, код состояния, кодировки;

·        Trace Information - информация о времени начала и конца каждого этапа обработки/генерации  страницы;

·        Control Tree - перечень всех элементов страницы вместе с информацией о размере каждого элемента;

·        Cookies collection - информация об использованных cookies;

·        Headers Collection - информация заголовков протокола HTTP

·        Forms Collection (доступна не всегда) - информация об элементах управления и их значениях, которые были переданы на сервер;

·        Server Variables - информация о всех серверных переменных и их значениях.

Включить трассировку можно и на уровне всего приложения. В этом случае можно будет просматривать информацию трассировки как на отдельных страницах обычным способом, так и при помощи специального просмотрщика:

http://имя_сервера/имя_проекта/trace.axd

Теги на уровне страницы продолжают действовать и они имеют приоритет перед настройками уровня приложения. Если на уровне приложения трассировка будет включена, а на уровне страницы - отключена, побеждают настройки на уровне страницы.

Можно оставить только просмотр сообщений через просмотрщика, а вывод сообщений на страницы - отменить. Выглядеть такие настройки в web.config будут так:

<configuration>

 <system.web>

    <trace enabled="true" pageOutput="false"/>

 </system.web>

</configuration>

Для целей безопасности возможность работы с trace.axd иногда отключают. сделать это можно так: найти файл system folder\Microsoft.NET\Framework\version number\Config\machine.config и в нем найти секцию httpHandlers. По умолчанию она выглядит так:

<httpHandlers>

  <add verb="*" path="trace.axd"

   type="System.Web.Handlers.TraceHandler"/>

</httpHandlers>

Для отключения просмотрщика нужно, чтобы атрибут path выглядел так: path = ""

Если вы использовали атрибут LocalOnly, то не только сообщения трассировки будут видны только с локального компьютера, но и к файлу trace.axd также можно будет обращаться только с локального компьютера.

Если в вашем приложении Web-форма вызывает компонент, вы вполне можете добавить в этот компонент сообщения трассировки. Для этого нужно:

·        импортировать в компонент пространство имен System.Web:

Imports System.Web

·        включить трассировку в компоненте:

HttpContext.Current.Trace.IsEnabled = True

в этом коде HttpContext.Current - это программный эквивалент страницы, которая вызывает компонент;

·        использовать обычные Trace.Write и Trace.Warn для вывода сообщений:

HttpContext.Current.Trace.Write   ("component", "this is my trace statement")

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

Теперь - о возможностях удаленной отладки. Отлаживать приложения .NET можно локально - обычными способами и удаленно. В этом модуле будет рассмотрена удаленная отладка средствами ASP.NET.

Удаленная отладка очень удобна. Она позволяет организовывать работу над одним сайтом целых команд разработчиков, позволять разработчикам создавать приложения .NET тогда, когда на их компьютере не установлен Web-сервер и т.п.

Для возможности удаленной отладки существуют следующие требования:

·        на сервере должна быть установлена VS.NET (или только remote components, входящие в ее поставку);

·        VS.NET обязательно должна быть установлена и на клиентском компьютере, с которого производится отладка;

·        программист, производящий отладку, должен обладать административными правами на сервер, где находится отлаживаемое Web-приложение (не только Web-сервер, а на сервер целиком);

·        пользователя обязательно нужно добавить в группу Debugger Users на компьютере, где находится отлаживаемое приложение (даже тогда, когда он уже обладает административными правами);

Для выполнения удаленной отладки достаточно на клиентском компьютере открыть VS.NET и в меню File выбрать Open -> Project from Web, затем ввести URL сервера, а затем выбрать нужный проект и нажать Open.

 

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru