我正在使用SignalR 1.2。
我启用了客户端SignalR日志记录,并在调用EnableDetailedErrors
时将true
设置为MapHubs()
,这样就可以将非常有用的信息发送到Chrome开发工具控制台窗口
是否有办法以某种方式将此信息捕获到磁盘,即是否有SignalR配置可用于启用此功能?我问的原因是,当发生断开连接事件时,例如用户关闭浏览器,我想以某种方式捕获它。手动将控制台输出保存到记事本(通过复制和粘贴)并不理想,因为我会松开任何断开连接事件的细节,因为一旦浏览器也关闭,开发工具窗口将关闭。
我可以将此日志记录信息捕获到磁盘吗?
答案 0 :(得分:1)
您可以让SignalR将其服务器端跟踪写入Web.config中指定的文件:
<system.diagnostics>
<sharedListeners>
<add name="traces" type="System.Diagnostics.TextWriterTraceListener" initializeData="server_traces.txt" />
</sharedListeners>
<trace autoflush="true" />
<switches>
<add name="SignalRSwitch" value="All" />
</switches>
<sources>
<source name="SignalR.Connection">
<listeners>
<add name="traces" />
</listeners>
</source>
<source name="SignalR.PersistentConnection">
<listeners>
<add name="traces" />
</listeners>
</source>
<source name="SignalR.ReflectedHubDescriptorProvider">
<listeners>
<add name="traces" />
</listeners>
</source>
<source name="SignalR.HubDispatcher">
<listeners>
<add name="traces" />
</listeners>
</source>
<source name="SignalR.MessageBus">
<listeners>
<add name="traces" />
</listeners>
</source>
<source name="SignalR.Transports.WebSocketTransport">
<listeners>
<add name="traces" />
</listeners>
</source>
<source name="SignalR.Transports.ServerSentEventsTransport">
<listeners>
<add name="traces" />
</listeners>
</source>
<source name="SignalR.Transports.ForeverFrameTransport">
<listeners>
<add name="traces" />
</listeners>
</source>
<source name="SignalR.Transports.LongPollingTransport">
<listeners>
<add name="traces" />
</listeners>
</source>
<source name="SignalR.Transports.TransportHeartBeat">
<listeners>
<add name="traces" />
</listeners>
</source>
</sources>
</system.diagnostics>
https://github.com/SignalR/SignalR/wiki/Tracing-on-the-server-side
如果您正在使用横向扩展提供程序,您还可以为&#34; SignalR.ScaleoutMessageBus&#34;,&#34; SignalR.SqlMessageBus&#34;,&#34; SignalR.ServiceBusMessageBus&#34;添加源,和/或&#34; SignalR.RedisMessageBus&#34;。
http://www.asp.net/signalr/overview/signalr-20/performance-and-scaling/scaleout-in-signalr