3

次のコード:

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

一部のマシンで次の例外をスローし始めました。何が原因でしょうか?

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

編集: エラーが発生したマシンは、Windows Server 2008 R2 を実行しています。Windows Server 2012 および Windows 7 を実行しているデスクトップ マシンは正常に動作します。(これは本当ですが、別の問題が関連する違いだと思います...以下を参照してください)。

編集: 追記として、これはコードベースを 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を実行していたことが判明しました。問題を解決したように見えるアンインストール。

4

0 に答える 0