首页 > 解决方案 > 实体框架 GetManifestResourceStream 间歇性失败

问题描述

我正在使用 EF 6.3 和 .NET Framework 4.5.1 开发 WinForms 应用程序。该应用程序编译为 X86 并在不同的 Win10 x64 机器上运行。

XmlException应用程序间歇性地抛出一个。包含 EF 的源代码后,我将其固定为:

System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderResource:

private bool TryCreateResourceStream(out Stream resourceStream)
{
    resourceStream = _assembly.GetManifestResourceStream(_resourceName);
    return resourceStream != null;
}

由于某些奇怪的原因,csdl 的嵌入式资源被破坏了。

例如,标签 Name 将替换为 Namey,后跟一些不可打印的字符。

重新启动后,应用程序将按预期工作。有时使用可以毫无问题地工作一整天,有时甚至重新启动也无济于事,必须第三次进行。

在环境环境中,我可以重现该问题,但可能需要启动 20 次调试会话。

我无法弄清楚哪个进程损坏了GetManifestResourceStream.

有任何想法吗?

标签: c#winformsentity-framework-6intermittent

解决方案


推荐阅读