gpt4 book ai didi

c# - 企业库 6 错误 : Cannot access a disposed object (Object name: 'Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter' )

转载 作者:行者123 更新时间:2023-11-30 21:54:48 27 4
gpt4 key购买 nike

  • 我有一个 ASP.NET MVC 5 应用程序
  • 该应用程序使用日志记录应用程序 block 和异常应用程序 block
  • 在生产环境中我发现多次出现如下错误信息:

Cannot access a disposed object. Object name: 'Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter'. at Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter.ExecuteReadOperation(Action readOperation) at Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter.Write(LogEntry log) at Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.LoggingExceptionHandler.WriteToLog(String logMessage, IDictionary exceptionData) at Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.LoggingExceptionHandler.HandleException(Exception exception, Guid handlingInstanceId) at Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ExceptionPolicyEntry.ExecuteHandlerChain(Exception ex, Guid handlingInstanceID)

当服务器上有一个失败的异步请求时,似乎会发生错误。当服务器尝试处理此错误时,ExceptionHandling 应用程序 block 失败。

当然,我的问题是我不明白这个错误的原因,但最让我烦恼的是我无法复制这个错误。

我已尝试重新初始化 AppDomain(通过 web.config)、回收应用程序池、在发送 ajax 请求之前重新启动 IIS 服务器。我还创建了一个 LogWriterWrapper 单例来设置 LogWriter 实例,但行为是相同的。有时,尝试处理异常时的错误仍然发生。

不知道有没有关系,好像只有客户端是ie8/ie9的时候才会出现这个错误。例如,当使用 chrome 时从未发生过,但我想这可能只是偶然......

最佳答案

最后,对于遇到此问题的任何人,在我的情况下,这是因为在应用程序的某些部分,有另一个 LogWriter 实例

Logger.SetLogWriter(new LogWriterFactory().Create(), false);

因为我有一些用于日志记录和异常处理的静态帮助程序,我在其中初始化了 logwriter 和 exceptionmanager,每当应用程序使用期间发生异常时,需要由 exceptionmanager 处理,在第二次手动实例化已经运行后, exceptionamanger 仍然“ Hook ”在不再存在的 logwriter 实例上

关于c# - 企业库 6 错误 : Cannot access a disposed object (Object name: 'Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32795363/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com