Вопрос

Всем привет.Я пытаюсь решить проблему, которая, по-видимому, не является чем-то необычным, и я не уверен, как найти, как это было решено для людей.Когда я запускаю StructureMap на своем компьютере через IIS, я получаю исключение, и оно выглядит примерно так:

**Description**: The application attempted to perform an operation not allowed by the security policy.  To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.
**Exception Details**: System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Этот вопрос возник здесь по адресу SO (https://stackoverflow.com/questions/784666/), в комментариях к этому сообщению в блоге и примерно год назад в списке рассылки structuremap.

Моя проблема не в том, что я запускаю его в чужой среде хостинга.Я даже не могу запустить его на моем собственном компьютере (IIS 7.5, Win7 RC, .NET 3.5).Я попытался настроить сайт на использование пользовательского файла политики, и FileIOPermission помечен как неограниченный access...no dice.Если у кого-то есть какие-то советы или ссылка, мы были бы очень признательны.

Обновить Таким образом, это никоим образом не лучший способ решить проблему, но после того, как я покопался и изучил то, что упомянул Джошуа, вот что я должен был сделать, чтобы заставить это работать: Карта структуры, Безопасность доступа к коду и плохое решение проблемы.Мы были бы признательны за лучшее решение.

Это было полезно?

Решение

Это ошибка, и она была исправлена в багажнике.Он будет включен в версии 2.6+.Некоторые более ранние версии StructureMap либо пытались без необходимости записывать динамические сборки на диск, либо без необходимости пытались читать из файловой системы.

Если вы работаете в ограниченной среде, которая не разрешает доступ к полным путям в файловой системе (ASP.NET), обязательно установите значение IgnoreDefaultFile = true при настройке вашего контейнера.Имейте в виду, что это отключит возможность загрузки конфигурации XML из StructureMap.config.

Другие советы

Как бы то ни было, я столкнулся с той же проблемой, когда у меня был полный контроль над полем и даже установил для всех разрешений значение "полное доверие".В IIS 7.5 мне пришлось изменить идентификатор, используемый для конкретного пула приложений, на NetworkService вместо ApplicationPoolIdentity.Как только я перезапустил IIS, это сработало.

К вашему сведению, я использую StructureMap версии v2.6.1 и столкнулся с этой проблемой.

Я не использую конфигурацию XML, поэтому я добавил следующую строку в свой конфигурационный код, которая устранила проблему.

IgnoreStructureMapConfig = true;

Используя официальную сборку StructureMap 2.5.4 в Windows 7 с IIS 7.5, я все еще сталкивался с этой проблемой.Изменение Маллиоха

  ObjectFactory.Initialize(x =>
    {
      x.UseDefaultStructureMapConfigFile = false;
      x.IgnoreStructureMapConfig = true;

было необходимо решить проблему FileIOPermission исключение, но затем я получил Request for the permission of type ‘System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′ failed. который я решил с помощью решения Майка (для которого я создал пошаговая визуализация ).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top