Почему трассировка не работает в дочерних действиях ASP.NET MVC? - PullRequest
2 голосов
/ 03 мая 2011

В приложении ASP.NET MVC 3 вызовы HttpContext.Trace.Write и System.Diagnostics.Trace.Write из родительского метода Controller (или из вызываемого им бизнес-объекта) приводят к записям в Trace.axd.

Если дочернее действие вызывается родительским представлением, например, Html.RenderAction ("ChildAction"), а затем инструкции трассировки в методе ChildAction Controller не отражаются в 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><br> <trace><br> <listeners><br> <add name="WebPageTraceListener" type="System.Web.WebPageTraceListener, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/><br> </listeners><br> </trace><br> </system.diagnostics>

1 Ответ

0 голосов
/ 27 мая 2011

DGreen, возможно, вы можете попробовать использовать Glimpse ( веб-сайт ).У него есть собственная реализация TraceListener, которая может решить эту проблему для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...