EntityFramework ObjectStateManager.DetectConflicts中出现Nullref



我编写了一个WCF Web服务,它接受XML文件并将其存储到数据库中。在"低负载"下一切都很好,但在高负载下,我出现了一些意想不到的行为,因此我无法确定到底是什么问题。有人有什么建议吗?

这是我在日志中看到的例外"有时"——比如10000次中的25次:

Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Data.Objects.ObjectStateManager.DetectConflicts(IList`1 entries)
   at System.Data.Objects.ObjectStateManager.DetectChanges()
   at System.Data.Entity.Internal.InternalContext.GetStateEntry(Object entity)
   at System.Data.Entity.DbContext.Entry(Object entity)
... rest of my stacktrace

我看到这种情况每隔一段时间就会发生,我目前正在研究这是否与并发性有关(其他线程可能在同一实体上工作)。有人能告诉我在哪里找吗?

当您尝试使用值为Nothing/null的引用变量时,会发生NullReferenceException。

当引用变量的值为Nothing/null时,这意味着它实际上并没有保存对任何对象实例的引用存在于堆中的。

我不知道问题出在哪里,但我相信是有线索的。因为它对少数用户来说运行良好。当负载增加时,它可能使用了多个线程来提高性能。当线程异步执行时,出现此问题的可能性更大。!!

我可以提供的解决方案是自定义指定线程,并同步对象。也许它能解决这个问题。

相关内容

  • 没有找到相关文章

最新更新