没有堆栈跟踪的 DNN PageLoadException

DNN PageLoadException with no stack trace

我们在 dnn 页面上有一个自定义模块,它会抛出 Page_Load_Exception 但不在 EventLog* 中包含堆栈跟踪。异常显然发生在我们的模块加载之前,我们的模块在其他环境中工作正常。

  1. 是否有禁用或启用获取堆栈跟踪的设置?

  2. 现在,在开发中,如果我强制执行页面加载异常,我确实会得到一个堆栈跟踪,但在试图找出为什么我查看 DNN 代码并在 PageBase.cs

    受保护的覆盖 void OnError(EventArgs e) { base.OnError(e); 异常 exc = Server.GetLastError(); Logger.Fatal("An error has occurred while loading page.", exc);

根据我的阅读,在 asp.net 中显然存在某些情况,其中 Server.GetLastError() 将 return 为空。避免这种情况的一种技术是处理 global.asax 中的 Server.GetLastError() ,然后将其存储起来供页面稍后使用。您认为这可能是我们在 DNN 中最终没有获得堆栈跟踪的原因吗?

就当是一条信息。 DNN 日志不包括堆栈跟踪,因为 AddLog 存储过程未更新。正如一位评论员所写,您可以查看 /portals/_default/Logs。在那里您会看到一堆文件,并且有 DNN 日志的异常。 AddLog 有一个例外。一旦我们确定 table 结构与升级相匹配,我们所要做的就是应用新的存储过程。