3

我似乎无法从 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 的跟踪选项卡中都显示良好。

欢迎任何想法,我一直在努力解决这个问题。

4

1 回答 1

0

也许这会对你有所帮助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 管道。

于 2013-09-11T06:11:47.143 回答