我有一个使用Mini Profiler的ASP.NET MVC 4网站。就在最近,我开始将SignalR用于更具交互性的页面。
当SignalR页面打开很长时间时,我遇到了问题。 Mini Profiler经常会产生算术溢出错误,因为SignalR请求已经打开了很长时间。我理解Mini Profiler可能会忽略SignalR请求MVC Mini Profiler Exception on MiniProfiler.Stop()。
但是我仍然热衷于使用Mini Profiler分析我的各个SignalR动作的性能。有没有办法做到这一点?
答案 0 :(得分:1)
运行MiniProfiler的默认方式是在请求开始时调用Start()
,初始化MiniProfiler实例以收集您的计时。然后在请求结束时拨打Stop()
,这将记录您的时间。
在您的情况下,您无法执行此操作,因为请求会持续太长时间。但是您仍然希望在一个整体SignalR请求中记录各个动作的时间。
在此模型中,您的操作实际上更符合我们在Web应用程序中认为是正常的http请求。因此,可能对您有用的解决方案是在每个操作开始时运行MiniProfiler.Start()
,并在每个操作结束时运行MiniProfiler.Stop
(),将每个操作视为自己的最终结果。 - 单位(并在您拨打Stop()
时保存个人资料信息)。
Start Main SignalR Connection
SignalR Request Action1
MiniProfiler.Start()
Perform Action
MiniProfiler.Stop()
End SignalR Request Action1
SignalR Request Action2
MiniProfiler.Start()
Perform Action
MiniProfiler.Stop()
End SignalR Request Action2
... Many More Actions ...
End Main SignalR Connection