2009-09-14 2 views
1

Я знаю, что Entity Framework поддерживает частичное доверие, я лично blogged about thatEntity Framework в среде с частичным доверием

Это работает нормально, я проверил это, и это было прекрасно. Теперь, если вы загрузите образцы, прикрепленные к моему сообщению об этом предмете, он больше не будет запускаться с частичным доверием по умолчанию !!!

Когда я вырыл в сборе System.Data.Entity с помощью рефлектора на позиции отказа «System.Data.Objects.LightweightCodeGenerator.ValidateSetterProperty (RuntimeMethodHandle setterMethodHandle, MethodInfo & setterMethodInfo, Тип & realType» Я заметил, что он называет RuntimeMethodHandle. Значение свойство, которое имеет следующий атрибут ПОЛУЧИТЬ аксессор «[SecurityPermission (SecurityAction.LinkDemand, UnmanagedCode = истина)]»

Так что я пошел в мою конфигурацию среды доверия и добавил еще один флаг «UnmanagedCode» «»

Я снова тестирую приложение и он работал нормально.

Теперь, что это все ?! Он работал раньше, так почему теперь это не так! Там чего-то не хватает !!! Изменен ли System.Data.Entity в течение нескольких частых сообщений об обновлениях для VS.NET 2008 SP1, а последний был сделан в августе прошлого года. Потому что до этой даты он работал нормально.

Так что я был бы признателен, если бы кто-нибудь смог прояснить это и направить меня, если я ошибаюсь, или есть что-то, что мне не хватает.

+0

Не уверен, если это ошибка или нет! Но я считаю ошибку, но не уверен, что она со стороны EntityFramework или BCL. Думаю, BCL изменился по некоторым соображениям безопасности. До последнего обновления свойство System.RuntimeMethodHandle.Value не имеет атрибута "[SecurityPermission (SecurityAction.LinkDemand, UnmanagedCode = true)]"! Я проверил его с помощью отражателя. Теперь у меня есть [SecurityPermission (SecurityAction.LinkDemand, UnmanagedCode = true)], как я упоминал в своем предыдущем сообщении. Это проблема, потому что теперь она останавливает поддержку Partial Trust. –

ответ

1

Diego Vega PM в Entity Framework команды ответил на этот вопрос в Entity Framework форумах со следующим

Здравствуйте Мухаммад,

Мы знаем о проблеме в сборке включены в Windows 7 и Windows, Server 2008 R2, который предотвращает Entity Framework работать в среде Trust.

Как версия mscoree.dll, так и сообщение об исключении, которое вы описываете , соответствует сценарию.

Мы ожидаем, что решение до основного принятия Windows 7 и Windows Server 2008 R2, но в тем временем рекомендации является донжон с помощью Windows Server 2008 или Windows Vista для тестирования и Развертывание ФВ приложений в Среднее доверие.

Надеется, что это помогает, Диего

1

Похоже, что у вас есть окончательное доказательство взломанного изменения в Entity Framework. Я бы пошел на http://connect.microsoft.com/ и сообщить об ошибке. Вероятно, это поможет, если вы сможете подтвердить, что изменение было выполнено путем завершения старой сборки без атрибута «UnmanagedCode = true». Включите обе версии в отчет об ошибке.

Кстати, я просто посмотрел на RuntimeMethodHandle в Reflector. Получатель доступа для Value возвращает «this.m_ptr;» и не имеет атрибутов украшения. Это в mscorlib, моя версия 2.0.0.0 (Я бегу .NET 3.5 на моей системе разработки.)

+0

Сделаю это. хорошая идея спасибо за ссылку –