Вопрос
Как получить информацию трассировки ASP.NET MVC, чтобы она была последовательной для вывода на трассе в виде trace.axd? Я могу просто пропустить что-то очевидное, пожалуйста, позвоните, если вы это увидите.
Фоновая информация для традиционного ASP.NET
Итак, вернемся к обычным дням ASP.NET, вы можете просто добавить следующее к вашему web.config:
<system.diagnostics>
<trace>
<listeners>
<add name="WebPageTraceListener" type="System.Web.WebPageTraceListener, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</listeners>
</trace>
</system.diagnostics>
...
<system.web>
<trace enabled="true" pageOutput="true" writeToDiagnosticsTrace="true"/>
...
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="1" compilerOptions="/d:TRACE" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
Затем вы можете добавить на свои страницы следующее:
HttpContext.Current.Trace.Write("Write Trace Here");
or
System.Diagnostics.Trace.Write("Write Trace Here");
И если вы нажмете на свою страницу (то есть localhost: 61115/Default.aspx), вы получите красивую таблицу трассировки со своим специальным трассированием, встроенным в события страницы asp.net:
aspx.page Begin Load 0.00343 0.000357
test 0.00462176 0.001192
aspx.page End Load 0.00526904 0.000018
Запуск localhost: 61115/Trace.axd? id = 0 сохранит те же результаты трассировки, что и выходы трассировки на странице.
Фоновая информация о ASP.NET MVC
К сожалению, я не могу заставить это работать в ASP.NET MVC 2.0 по неизвестным мне причинам. Я использую аналогичные настройки web.config как перечисленные выше. Что интересно, так это то, что я могу только получить следы, чтобы частично работать. Поэтому, если я попал на эквивалентную по умолчанию страницу по умолчанию (также как метод действия индекса моего homecontroller), я вижу все традиционные события страницы asp.net, такие как preinit, preload, prerender и т.д., Но не пользовательский трафик msg с использованием System.Diagnostics и HttpContext.Trace.Write.
Однако, если я вернусь к файлу Trace.axd? id = 0, меня приветствуют мои пользовательские сообщения трассировки, но нет трассировки трассировки страницы ASP.NET. Я должен упустить что-то здесь, что вызывает эту несогласованность в информации о трассировке, которую я вижу на странице или в файле trace.axd(напомним, что традиционный asp.net выводит идентичные выходные данные на странице и trace.axd). Мне бы очень хотелось, чтобы моя информация о трассировке на странице соответствовала trace.axd(либо путем удаления традиционных событий страницы asp.net, либо других средств). Есть что-то, чего я не хватает?