当我点击个人资料的分享链接时,我收到以下异常.我正在使用NuGet的最新版本,2.0.1.
System.NullReferenceException: Object reference not set to an instance of an object.
at StackExchange.Profiling.Storage.SqlServerStorage.LoadInBatch(DbConnection conn, Object idParameter) in C:\Users\sam\Desktop\MiniProfiler\StackExchange.Profiling\Storage\SqlServerStorage.cs:line 348
at StackExchange.Profiling.Storage.SqlServerStorage.Load(Guid id) in C:\Users\sam\Desktop\MiniProfiler\StackExchange.Profiling\Storage\SqlServerStorage.cs:line 297
at StackExchange.Profiling.UI.MiniProfilerHandler.Results(HttpContext context) in C:\Users\sam\Desktop\MiniProfiler\StackExchange.Profiling\UI\MiniProfilerHandler.cs:line 314
at StackExchange.Profiling.UI.MiniProfilerHandler.ProcessRequest(HttpContext context) in C:\Users\sam\Desktop\MiniProfiler\StackExchange.Profiling\UI\MiniProfilerHandler.cs:line 188
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Run Code Online (Sandbox Code Playgroud)
我发现,我认为是在代码中的空引用的来源在这里:
ClientTimings clientTimings = null;
if (clientTimingList.Count > 0)
{
clientTimings.Timings = clientTimingList;
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么,或者当有条目时总是会抛出异常clientTimingList?
我想也许如果我禁用批处理,我不会运行LoadInBatch函数,但LoadIndividually有同样的问题.
我找了一种方法来禁用客户端计时,但找不到它的设置.
也许我可以在数据库中设置一个触发器来删除行,但这似乎有点极端.
如果我有时间,我会得到代码并提交拉取请求.我想先确保我没有遗漏任何明显的东西.
看起来这是一个错误。我在 github 上添加了一张票证和一个拉取请求来修复它: https: //github.com/SamSaffron/MiniProfiler/pull/40
新代码如下所示:
if (clientTimingList.Count > 0)
{
clientTimings = new ClientTimings();
clientTimings.Timings = clientTimingList;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
650 次 |
| 最近记录: |