Иллюстрированный самоучитель по Architecture .NET

Трассировка

Технология ASP.NET предоставляет широкие возможности для трассировки программы. Если атрибуту Trace (Трассировка) страницы присвоить значение true (истина), то выходная трассировочная информация, генерируемая ASP.NET, будет выводиться в окне браузера. Кроме того, можно вывести свою трассировочную информацию. Для этого используется метод Write (Запись) объекта TraceContext. Чтобы получить доступ к этому методу, используется свойство Trace (Трассировка) класса Page (Страница).

Страница HelloTrace.aspx иллюстрирует использование трассировки при записи информации в объект Response (Ответ).

<!– HelloTrace.aspx ›
<%@ Assembly Name="HelloTrace" %>
<%@ Page Inherits=MyHelloTrace Trace = "true" %>
<! – Трассировка Страницы – > <HTML>
<HEAD>
</HEAD>
<BODY> <!– ТЕЛО ›
<FORM RUNAT="SERVER">Your name:&nbsp;
<asp:textbox id=txtName Runat="server"> </asp:textbox>
<p><asp:button id=cmdEcho onclick=cmdEcho_Click Text="Echo" runat="server"
tooltip="Click to echo your name">
<! – подсказка – >
</asp:button></p>
<asp:label id=lblGreeting runat="server">
</asp:label> <P></P>
</FORM>
</BODY> <! – тело – >
</HTKL>

Класс MyHelloTrace, реализованный в виде сборки rielloTrace.dll, содержит следующий код, который записывает вывод трассировки:

void Page_Init(Gtoect *senaer, EventArgs *e)
{
Page *p = dynamic_cast<Page *>(sender);
// Страница "р = dynarpic__cast <Страница *> (отправитель);
TraceContext *trace = p › get_Trace();
trace › Write("Page_Init<br>"); // трассировка › Запись
tгасе › Write (String::Concat(
// трассировка › Запись (Строка)
"txtName = ", txtName › Text, "<br>")); // Текст
trace › Wnte (String::Concat (
// трассировка › Запись (Строка)
"IblGreeting = ",iblGreeting › Text, "<br>")); // Текст
}
void Page_Load(Object *sender, EventArgs *e)
{
Page *p = dynamic__cast<Page *>(sender);
// Страница *р = dynamic_cast <Страница *> (отправитель);
TraceContext *trace = p › get_Trace();
trace › Write("Page_Load<br>"); // трассировка › Запись
trace › Write (String::Format(
// трассировка › Запись (Строка:: Формат)
"IsPostBack = (0}<br>", _box (IsPostBack))
};
trace › Write(String::Concat(
// трассировка › Запись (Строка)
"txtName = ", txtName › Text, "<br>")); // Текст
trace › Write(String::Concat(
// трассировка › Запись (Строка)
"IblGreeting = ", lblGreeting › Text, "<br>")); // Текст
}
void Page_PreRender(Object ^sender, EventArgs *e) –
{
Page *p = dynamic_cast<Page *>(&ender);
// Страница *р = aynamic_cast <Страница *> (отправитель);
TraceContext wtrace = p › get_Trace();
trace › Write("Fage_PreRendei<br>"); // трассировка › Запись
trace › Wnte (String:: Concat
// трассировка › Запись (Строка)
"txtName == ", txtName › Text, "<br>")); // Текст
trace › Write(String::Concat(
// трассировка › Запись (Строка)
"IblGreeting = ", lblGreeting › Text, "<br>")); // Текст
}

На рис. 10.10 показано, что отображает браузер после первого запроса данной страницы. Обратите внимание, что вывод трассировки и трассировочная информация, генерируемая ASP.NET, отображается после формы.

Иллюстрированный самоучитель по Architecture .NET › ASP.NET и Web-формы › Трассировка
Рис. 10.10. Браузер отображает трассировочную информацию

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