我编写了一个WCF Web服务,它接收XML文件并将它们存储到数据库中。一切都在“低负荷”下工作正常但在高负荷下我会遇到一些意想不到的行为,因此我无法确定究竟是什么问题。有人有建议吗?
这是我在日志中有时会看到的例外情况 - 就像10 000次中的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
我看到这种情况每隔一段时间就会发生,我现在正在研究这是否与并发性有关(其他一些线程可能在同一个实体上工作)。有人可以给我一些关于在哪里寻找的指示吗?
答案 0 :(得分:0)
NullReferenceException当您尝试使用值为Nothing / null的引用变量时发生。
当引用变量的值为Nothing / null时,表示 它实际上并没有对任何对象的实例进行引用 存在于堆上。
我不知道问题是什么,但我相信它与线程。由于它适用于少数用户。当负载增加时,它可能使用多个线程来提高性能。当线程异步执行时,出现此问题的可能性更大。!!
我可以提供的解决方案是自定义线程,同步对象。可能它会解决问题。