我知道实体框架支持部分信任,我个人blogged about that
工作正常,我测试过它很好。现在,如果您下载附在我的帖子上关于主题的样本,它将不再在默认的部分信任下运行!!!
当我在故障位置使用反射器挖掘System.Data.Entity程序集时“System.Data.Objects.LightweightCodeGenerator.ValidateSetterProperty(RuntimeMethodHandle setterMethodHandle,MethodInfo& setterMethodInfo,Type& realType”)我发现它调用了RuntimeMethodHandle.Value get访问器具有以下属性的属性“[SecurityPermission(SecurityAction.LinkDemand,UnmanagedCode = true)]”
所以我进入了我的中等信任配置并添加了另一个标志“UnmanagedCode” “”
我再次测试应用程序,它工作正常。
现在这是怎么回事?!它之前正在工作,为什么现在不是不是!有些东西不见了!!! System.Data.Entity是否在VS.NET 2008 SP1的几个频繁更新期间发生了变化,最新的一个是在2009年8月发布的。因为在那个日期之前,它工作正常。
所以如果有任何人可以澄清这一点并指导我,如果我错了,或者有些东西我不知道,我将不胜感激。
答案 0 :(得分:1)
听起来你已经明确证明了Entity Framework的重大改变。我会去http://connect.microsoft.com/并报告错误。如果您可以通过在没有“UnmanagedCode = true”属性的情况下对旧程序集进行更改来确认更改,则可能会有所帮助。在错误报告中包含这两个版本。
顺便说一句,我只是看了Reflector中的RuntimeMethodHandle。 Value的get访问器返回“this.m_ptr;”并且没有属性装饰。它在mscorlib中,我的版本是2.0.0.0(我在我的开发系统上运行.NET 3.5。)
答案 1 :(得分:1)
实体框架团队中的Diego Vega PM使用以下
在Entity Framework论坛中回答了此问题Hello Muhammad,
我们知道构建中存在问题 包含在Windows 7和Windows中 阻止实体的Server 2008 R2 在Medium中工作的框架 信任。
mscoree.dll和。的版本 您描述的异常消息 匹配方案。
我们希望之前有解决方案 主流采用Windows 7和 Windows Server 2008 R2,但在 同时建议是 继续使用Windows Server 2008或 Windows Vista用于测试和 在中部署基于EF的应用程序 中等信任。
希望这有帮助,迭戈