В приложении 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>