Pergunta

Olá todos. Estou tentando resolver um problema que, aparentemente, não é incomum e eu não tenho certeza de como encontrar como isso foi resolvido para a gente. Quando eu executo StructureMap na minha máquina através do IIS recebo uma exceção e parece que isso:

**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.

Esta questão surgiu aqui no SO ( https://stackoverflow.com/questions/784666/ ), < a href = "http://codebetter.com/blogs/jeremy.miller/archive/2008/11/30/a-gentle-quickstart-for-structuremap-2-5.aspx" rel = "nofollow noreferrer"> em os comentários sobre este post e um ano ou mais atrás na lista de discussão StructureMap .

Meu problema não está em execução em um ambiente de hospedagem estrangeira. Eu não posso nem começar a correr na minha própria caixa (IIS 7.5, Win7 RC, .NET 3.5). Eu tentei configurar o site para usar um arquivo de política personalizado eo FileIOPermission está marcada para ter acesso irrestrito ... não dados. Se alguém tem algumas dicas ou um link que seria muito apreciado.

Atualizar Portanto, não há nenhuma maneira que esta é a melhor maneira de resolver o problema, mas depois de cavar em volta e olhando para o que Josué mencionado, estas são as coisas que eu tinha que fazer para obtê-lo trabalhando: StructureMap, código de acesso segurança e uma má solução para um problema . Uma solução melhor seria apreciada.

Foi útil?

Solução

Este é um bug, e foi fixado no porta-malas. Ele será incluído nas 2.6+ lançamentos. Algumas versões anteriores do StructureMap seria ou tentativa de escrever desnecessariamente os conjuntos dinâmicos no disco, ou desnecessariamente tenta ler a partir do sistema de arquivos.

Se você estiver executando em um ambiente restrito que não permite o acesso a caminhos completos no sistema de arquivos (ASP.NET), certifique-se de conjunto IgnoreDefaultFile = true quando você configurar o seu recipiente. Tenha em mente isso irá desativar a capacidade de configuração XML carga de StructureMap.config.

Outras dicas

Por que vale a pena, eu corri para este mesmo problema onde eu tinha o controle total sobre a caixa e até definir todas as permissões para confiança total. Com o IIS 7.5, eu tive que mudar a identidade usada para o pool de aplicativos específicos para NetworkService vez de ApplicationPoolIdentity. Uma vez que eu reiniciado IIS, funcionou.

FYI, eu estou usando v2.6.1 StructureMap e correu para esta questão.

Não uso uma configuração XML, então eu adicionei a seguinte linha ao meu código de configuração, que corrigiu o problema.

IgnoreStructureMapConfig = true;

Usando o oficial StructureMap 2.5.4 Desenvolver a Windows 7 com o IIS 7.5 ainda encontrou este problema. mudança de Mallioch

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

era necessário para resolver a exceção FileIOPermission mas, em seguida, recebeu Request for the permission of type ‘System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′ failed. que eu resolvido usando a solução de Mike (para o qual eu criei um passo-a-passo visualização ).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top