Технология 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, отображается после формы