如何使用Nlog在Blazor服务器端执行高级错误处理

时间:2020-05-20 12:24:56

标签: c# error-handling blazor nlog blazor-server-side

我在服务器托管模式下使用Blazor,但遇到错误并不断记录错误。

<table class="new-table table-scroll" border="0" id="content-table" class="in-content-table">

我正在使用Nlog,它为我捕获了所有这些错误,但是它没有任何线索表明哪个组件引发了此错误。因此,我现在有点茫然,我设法提出了一些会导致此错误的演示代码。

An unhandled exception was thrown by the application. | System.ArgumentNullException: Value cannot be null. (Parameter 'model') at Microsoft.AspNetCore.Components.Forms.FieldIdentifier..ctor(Object model, String fieldName) at Microsoft.AspNetCore.Components.Forms.FieldIdentifier.Create[TField](Expression`1 accessor) at Microsoft.AspNetCore.Components.Forms.ValidationMessage`1.OnParametersSet() at Microsoft.AspNetCore.Components.ComponentBase.CallOnParametersSetAsync()

因此指向空对象的ValidationMessage将引发此错误,但是我对所有代码进行了三重检查,并且在任何地方都不会发生。

所以没有人知道如何使用NLog记录有关哪个组件引发了错误的更多详细信息。我尝试使用DI将NavigationManager注入NLog,但是运气不佳,因为Nlog使用了静态服务提供程序,并且NavigationManager的作用域很广。另外,我才刚刚开始使用NLog,所以在涉及该部分时我还是个新手。

或者没有人知道我该如何围绕剃刀代码进行尝试,我已经研究了很多次,微软自己的guidance给出了有关哪些区域可能引发错误的建议,但我不知道我们不认为上述令人反感的代码会涉及这些领域。

谢谢您!

0 个答案:

没有答案