Data Quality Services – A .NET Framework error occurred during execution of user-defined routine or aggregate “SetDataQualitySession”

Olá pessoal, tudo bem?

Fez alguma atualização do Windows e o Data Quality Services passou a apresentar algumas mensagens relacionadas ao .NET Framework? Então, não faça nenhuma maluquice, gambiarra, workaround que a internet lhe indicar, faça o que este artigo irá te ensinar, mas de maneira correta e simples!

A .NET Framework error occurred during execution of user-defined routine or aggregate “SetDataQualitySession”:
System.Data.SqlClient.SqlException: A .NET Framework error occurred during execution of user-defined routine or aggregate “SetDataQualitySessionPhaseTwo”:
System.TypeInitializationException: The type initializer for ‘Microsoft.Ssdqs.Core.Startup.ServerInit’ threw an exception. —> Microsoft.Ssdqs.Infra.Exceptions.ServerException: Failed to initialize configuration. —> System.IO.FileLoadException: Could not load file or assembly ‘System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ or one of its dependencies. Assembly in host store has a different signature than assembly in GAC. (Exception from HRESULT: 0x80131050) See Microsoft Knowledge Base article 949080 for more information.

Sintoma

Ao abrir o Data Quality Client você se depara com a mensagem de erro ao lado, também pode ocorrer durante a execução de algum pacote do Integration Services a mesma mensagem.

Isto provavelmente ocorre, pois o .NET foi atualizado de alguma forma e assim os assemblies que estavam registrados perderam a “referência”.

A própria Microsoft no tópico 4.23 do artigo a seguir indica um workarround: https://social.technet.microsoft.com/wiki/contents/articles/3711.microsoft-sql-server-code-named-denali-ctp3-release-notes.aspx

Sinceramente, não sei porque, pois eu encontrei na própria documentação uma maneira muito mais elegante de resolver isto, veja a seguir.

Resolução

O que deverá ser feito e rodar o comando para reinstalar o DQS, porém, será ignorada a fase de recriação dos bancos de dados, assim, ele fará apenas o upgrade das DLLs. Desta maneira, acesse o diretório de binários do SQL Server da sua Instância com problema:

  • Abra o DOS como Administrador;
  • Digite o comando abaixo:
    cd “C:\Program Files\Microsoft SQL Server\MSSQLXYZ.SUAINSTANCIA\MSSQL\Binn”
  • Digite o seguinte comando:
    DQSInstaller.exe -upgradedlls

Maiores detalhes sobre o DQSInstaller, leia em Executar o DQSInstaller.exe do prompt de comando ou Atualizar assemblies SQLCLR após atualizar o .NET Framework.

Espero que este artigo salve o seu dia, pois eu tive uma luz no fim do túnel, já que não admitia ter que fazer “gambiarras” para resolver este problema!

Dica final: Antes de fazer qualquer coisa, sempre leia a documentação da Microsoft, muitas vezes desprezada, ela na verdade sempre se mostra suficiente e completa!

Até breve.

Vithor da Silva e Silva | Consultor e Instrutor | SQL Server e Power BI
vithor@vssti.com.br

Deixe uma resposta