Olá pessoal,
Boa tarde!
Neste post vou mostrar a vocês como resolver rapidamente problemas de assinatura de DLL Assembly do .NET Framework no SQL Server. Esse erro ocorre quando alguma rotina do SQLCLR utiliza alguma DLL do Framework .NET do servidor e após alguma atualização de sistema, o usuário do CLR perde as permissões de Unsafe Assembly ou alguma DLL é atualizada.
Demonstração do problema
Quando esse erro ocorre, todas as suas SP’s do CLR que utilizam a DLL afetada irão apresentar a mensagem de erro abaixo:
Could not load file or assembly or one of its dependencies. Assembly in host store has a different signature than assembly in GAC (Exception from HRESULT: 0x80131050)
Solução
Para resolver esse problema de assinatura, vamos conceder novamente a permissão de Unsafe Assembly para o usuário do CLR e depois alterar o Assembly das DLL’s que estão apresentando erro apontando para a DLL que nossa rotina do CLR espera.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
USE [master] GO GRANT UNSAFE ASSEMBLY TO CLR_User USE [CLR] GO ALTER ASSEMBLY [System.DirectoryServices] FROM 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.DirectoryServices.dll' ALTER ASSEMBLY [System.DirectoryServices.Protocols] FROM 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.DirectoryServices.Protocols.dll' |
A partir de agora, podemos utilizar novamente a nossa SP:
And that's it, folks!
Até a próxima!
sql server, sql, Could not load file or assembly or one of its dependencies. Assembly in host store has a different signature than assembly in GAC (Exception from HRESULT: 0x80131050), assembly, gac
sql server, sql, Could not load file or assembly or one of its dependencies. Assembly in host store has a different signature than assembly in GAC (Exception from HRESULT: 0x80131050), assembly, gac