StructureMap, IIS 7.5 и FileIOException - PullRequest
       17

StructureMap, IIS 7.5 и FileIOException

5 голосов
/ 23 октября 2009

Привет всем. Я пытаюсь решить проблему, которая, по-видимому, не редкость, и я не уверен, как найти решение этой проблемы для людей. Когда я запускаю 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 отмечен как имеющий неограниченный доступ ... без игры в кости. Если у кого-то есть какие-либо советы или ссылка, мы будем очень благодарны.

Обновление Таким образом, никоим образом это не лучший способ решения проблемы, но после того, как я покопался и изучил то, что упомянул Джошуа, мне нужно было сделать следующее: StructureMap, Code Access Security и Плохое решение проблемы . Лучшее решение будет оценено.

Ответы [ 4 ]

2 голосов
/ 29 декабря 2009

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

1 голос
/ 21 января 2011

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

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

IgnoreStructureMapConfig = true;
0 голосов
/ 25 января 2010

Используя официальную сборку 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., который я решил с помощью решения Майка (для которого я создал пошаговую визуализацию ).

0 голосов
/ 23 октября 2009

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

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

...