如果发生 AccessViolationException,与它相关的故障模块是否意味着它是该模块中的错误,在我们的例子中,它恰好是我们的第三方 DLL 之一?或者这是一个更复杂的问题?我们已经联系了这个模块的制造商,但他们没有发现任何错误,只是暗示可能的堆栈损坏意味着什么。但是,根据事件日志,特定的故障模块始终与 AccessViolationException 相关联。那么这件事的真相是什么?它是有问题的第三方 DLL 模块还是其他什么?
背景
我们在 IIS 7 上运行的 .NET WCF Web 服务中使用受互斥体保护的 VB6 STA COM 对象。最近我们检测到随机 System.AccessViolationException 错误(由该对象引起)使 Web 服务完全崩溃,我们非常无助此刻,我们已经完成了使该 COM 对象与 Web 服务一起工作的所有工作。服务本身已使用以下指南设置为在 STA 模式下运行:(http://scottseely.com/2009/07/17/calling-an-sta-com-object-from-a-wcf-operation/
谢谢