Трассировка
Технология 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:
<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, отображается
после формы
Рис. 10.10. Броузер отображает трассировочную
информацию
|