我似乎无法从SignalR中心获取跟踪信息。我正在使用MVC4项目,并且在我的MVC控制器中正在正确记录跟踪信息,但是当我在SignalR中心内使用跟踪时,我什么都没得到。
例如,我看到来自控制器第一行的消息:
System.Diagnostics.Trace.TraceInformation("Test Controller");
但是我没有从我的中心的第一行看到这条消息:
System.Diagnostics.Trace.TraceInformation("Test Hub");
我的web.config在<system.web>
下面有以下行:
<trace enabled="true"
writeToDiagnosticsTrace="true"
localOnly="false"
mostRecent="true"
pageOutput="false" />
我的系统诊断如下:
<system.diagnostics>
<sources>
<source name="Example Source" switchName="sourceSwitch" switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="GlimpseListener" />
</listeners>
</source>
</sources>
<switches>
<add name="sourceSwitch" value="All" />
</switches>
<sharedListeners>
<add name="GlimpseListener" type="Glimpse.Core.TraceListener, Glimpse.Core" />
</sharedListeners>
<trace>
<listeners>
<add name="WebPageTraceListener" type="System.Web.WebPageTraceListener, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</listeners>
</trace>
</system.diagnostics>
如上所述,来自我的控制器的跟踪消息在Trace.axd页面和Glimpse的跟踪选项卡中都显示正常。
欢迎任何想法,我一直在拉这个想法。
答案 0 :(得分:1)
也许这会对你有用https://github.com/SignalR/SignalR/wiki/Tracing-on-the-server-side
什么是相关的:
<source name="Microsoft.Owin.Host.SystemWeb" switchValue="All">
<listeners>
<add name="traces" />
</listeners>
</source>
<source name="SignalR.Connection">
<listeners>
<add name="traces" />
</listeners>
</source>
<sharedListeners>
<add name="traces" type="System.Diagnostics.TextWriterTraceListener" initializeData="server_traces.txt" />
</sharedListeners>
使用文本侦听器将按预期工作,因为它可以“运行”“正常”的asp.net管道。