构造WeakReference <t>抛出COMException </t>

时间:2014-06-06 20:09:50

标签: c# com weak-references appdynamics

以下代码:

IDisposable d = ...
new WeakReference<IDisposable>(d);

已开始在某些计算机上抛出以下异常。什么可能导致这种情况?

System.Runtime.InteropServices.COMException: Unspecified error (Exception from HRESULT: 0x80004005 (E_FAIL))

编辑:遇到错误的计算机正在运行Windows Server 2008 R2。运行Windows 7的Windows Server 2012和台式机运行正常。(这是事实,但我现在认为另一个问题是相关的差异......见下文)。

编辑:作为补充说明,这是在将我们的代码库更新到Entity Framework 6.1.1.-beta1之后发生的。在上面的代码中,IDisposable是一个包装EF DbContext的类。

编辑:为什么投票结束?

编辑:失败的堆栈跟踪在上面代码中调用的WeakReference<T>构造函数结束:

at System.WeakReference`1..ctor(T target, Boolean trackResurrection)
// from here on down it's code we wrote/simple LINQ. None of this code has changed recently;
// we just upgraded to EF6 and saw this failure start happening
at Core.Data.EntityFrameworkDataContext.RegisterDependentDisposable(IDisposable child)
at Core.Data.ServiceFactory.GetConstructorParameter[TService](Type parameterType)
at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Core.Data.ServiceFactory.CreateService[TService]()
at MVC controller action method

编辑:事实证明,遇到此问题的计算机正在运行AppDynamics。卸载它似乎已经解决了这个问题。

0 个答案:

没有答案