QUICK TIPS: Erro de permissão ao acessar DLL no servidor.

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

Olá pessoal, essa dica que vou mostrar agora, deve ser muito útil para muitos que ainda não se depararam com este problema de permissão de DLL no servidor.


     Olá pessoal, essa dica que vou mostrar agora, deve ser muito útil para muitos que ainda não se depararam com este problema de permissão de DLL no servidor.

     Vou postar está dica, pois me deu um trabalhão para descobre... rsrsrsr
 
     Recentemente me deparei com um erro (That assembly does not allow partially trusted callers) no servidor em que publico os sites dos meus clientes, que ainda não tinha visto no .NET. Ai começou pra mim, uma saga de 26 horas para tentar colocar o site do meu cliente no ar novamente.
 
     Fiz de tudo, mas nada tinha explicação, pois na minha maquina (localhost) funcionava perfeitamente. Com isso, ficava difícil descobri o erro se eu não podia “debugá-lo”. Até que de muito pesquisar, descobri de tinha algo há ver com permissão no servidor (provedor) na minha Bin (pasta onde ficam as DLL). A partir daí apareceu uma luz no final do túnel, rsrsrs.
 
     Passei então, a procurar por permissões em servidores, até descobrir, que alguma das minhas DLL não tinha permissão para ser executada no meu provedor, pois por default de configuração deles o trust level era igual à medium (trust level="medium" (importante: Abra e feche a tag trust)), com isso, eu não consegui acessar uma das DLL da minha aplicação.
 
     “Agora, vamos ver o que tive que fazer para contornar essa situação. Claro que depois de pronto é bem simples, mas saber do zero o que fazer é bem diferente rsrsrs. “
 
     Vamos lá !

     A primeira coisa é editar o AssemblyInfo.cs que se encontra na pasta properties do projeto. Lá, você vai por esta linha de código abaixo:
 
[assembly: AllowPartiallyTrustedCallers]
 
     Está pronta a primeira etapa! Agora, vamos à segunda coisa a se fazer. Abra seu web.config, em seguida coloque a linha abaixo:
 
(trust level="Full" (importante: Abra e feche a tag trust))
 
     Com isso, você dá acesso total a suas DLL no servidor! Então muito cuidado ao fazer essa configuração no seu servidor.
 
Importante: Esta Linha vai ser colocada logo abaixo da Tag: system.web
 
     Pronto, agora você passou a ter permissão total no seu Servidor. Vou explicar o que significa "level=Full". Geralmente, nos provedores, esta opção vem definida como "medium", com isso em alguns casos (geralmente DLL acesso a banco) você passa a não ter mais permissão (ainda não descobri o motivo disso). Colocando level igual à Full, você falar que sua aplicação tem total direito de acesso as DLL. Com isso, este erro não acontecerá mais nas suas aplicações.

Conclusão:
 
     Não sei informar ainda até que ponto isso pode ser bom ou ruim. Mas por enquanto resolveu meu problema. Vou pesquisar se isso pode trazer algum problema ou não de segurança para meu site. Quando descobri, posto aqui para conhecimento de todos que ainda não o tem.
 
     Outra coisa, eu só tive permissão para realizar esta configuração, porque meu provedor não bloqueou em nenhum momento. Isso pode acontecer, então não são 100% certo que vá funcionar da mesma forma que funcionou comigo!
 
     Com certeza deve ter outra forma de ser fazer isso sem depender dos provedores.

     No mais, fica ai minha dica e espero ter ajudado.
 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?