#asp.net-mvc #asp.net-mvc-3
#asp.net-mvc #asp.net-mvc-3
Вопрос:
В ASP.NET Приложение MVC 3, вызывает HttpContext.Трассировка.Запись и система.Диагностика.Трассировка.Запись из метода родительского контроллера (или из бизнес-объекта, который он вызывает) приводит к записям в Trace.axd.
Если дочернее действие вызывается родительским представлением, например, Html.RenderAction («Дочернее действие»), то инструкции трассировки в методе контроллера ChildAction не отражаются в Trace.axd. И все же, если я нажму http://localhost/Home/ChildAction непосредственно после этого инструкции появляются в трассировке.
Я делаю что-то неправильно или требуется какая-то конфигурация веб-сайта, позволяющая трассировке работать для дочерних действий и любых бизнес-методов, которые они вызывают?
HomeController.cs:
public ActionResult Index()
{
HttpContext.Trace.Write("blah");
System.Diagnostics.Trace.WriteLine("blah diag");
var b = new Business();
b.DoStuff();
return View();
}
public ActionResult ChildAction()
{
HttpContext.Trace.Write("child action trace");
System.Diagnostics.Trace.WriteLine("child action diag");
var b = new Business();
b.DoStuff();
return Content("some content");
}
Index.cshtml:
<h2>Index</h2>
@{ Html.RenderAction("ChildAction"); }
web.config:
<trace enabled="true" localOnly="false" mostRecent="true" pageOutput="false" requestLimit="1000" traceMode="SortByTime" writeToDiagnosticsTrace="false" />
<system.diagnostics>
<trace>
<listeners>
<add name="WebPageTraceListener"
type="System.Web.WebPageTraceListener, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</listeners>
</trace>
</system.diagnostics>
Ответ №1:
DGreen, возможно, вы могли бы попробовать использовать Glimpse (веб-сайт). У него есть собственная реализация TraceListener, которая может решить эту проблему за вас.