Entity Framework в среде частичного доверия

Я знаю, что Entity Framework поддерживает частичное доверие, я лично писал об этом

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

Когда я копался в сборке System.Data.Entity с использованием рефлектора на позиции сбоя "System.Data.Objects.LightweightCodeGenerator.ValidateSetterProperty(RuntimeMethodHandle setterMethodHandle, MethodInfo& setterMethodInfo, свойство Type& realType" я заметил, что оно вызывает Runtime, и у меня возникает следующее свойство: атрибут при получении доступа "[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode=true)]"

Поэтому я перешел к своей конфигурации среднего доверия и добавил еще один флаг "UnmanagedCode" ""

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

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

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

2 ответа

Решение

Диего Вега, руководитель проекта Entity Framework, ответил на этот вопрос на форумах Entity Framework следующим

Привет Мухаммед,

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

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

Мы ожидаем, что у нас будет решение до массового внедрения Windows 7 и Windows Server 2008 R2, но в то же время рекомендуется продолжать использовать Windows Server 2008 или Windows Vista для тестирования и развертывания приложений на основе EF в Medium Trust.

Надеюсь, это поможет, Диего

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

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

Другие вопросы по тегам