SQL Server Reporting Services (SSRS) – Erro ao consultar os dados: Houve um problema ao obter dados do serviço Web Servidor de Relatórios

Visualizações: 360
Tempo de Leitura: 4 minutos

Fala pessoal!

Durante a criação do meu artigo SQL Server Reporting Services (SSRS) – Quais os relatórios mais acessados ? E quais não estão sendo utilizados ? (que acabei de publicar), encontrei alguns erros ao testar a conectividade com o banco de dados através do Power BI Report Server, que tinha instalado há alguns minutos para esse artigo, onde ao tentar retornar os dados quando clicava no botão “Carregar dados”, na aba “Visualização de dados”, apresentava o erro conforme demonstro abaixo:

Transcrição da mensagem de erro:

Ocorreu um erro.

Não foi possível processar o conjunto de dados.
Houve um problema ao obter dados do serviço Web Servidor de Relatórios.

Testei a conectividade do meu data source e estava funcionando normalmente:

Quando eu testava pelo Report Builder, nenhum problema também:

Então foi começar a investigar o problema mais a fundo. O primeiro passo, é analisar os logs do Power BI Report Server, que normalmente, ficam no diretório “C:\Program Files\Microsoft Power BI Report Server\PBIRS\LogFiles”:

Analisando o arquivo de log, no horário aproximado de quando tentei visualizar os dados e o erro foi gerado, identifiquei a mensagem de erro abaixo:

extensionfactory!ReportServer_0-3!16c4!12/22/2018-10:46:03:: e ERROR: Exception caught instantiating ORACLE report server extension: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.
at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)
at Microsoft.ReportingServices.DataExtensions.OracleClientConnectionWrapper..ctor()

Parecia ser algum problema de driver no próprio servidor do Reporting Services. Como a mensagem fala sobre .Net Framework Data Provider, fui confirmar se o .NET Framework estava instalado e realmente estava.

O passo seguinte era analisar o arquivo machine.config do .NET Framework para validar se as entradas dos drivers estava correta. O arquivo machine.config geralmente fica localizado em “C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config” e ao abrir o arquivo e conferir as entradas dos providers em System.Data, identifiquei que havia um problema aí, pois estava vazio:

Uma das soluções era tentar reinstalar o Microsoft .NET Framework para ver se os registros seriam gerados no machine.config, só que essa solução ia demorar muito. Como alternativa, abri o machine.config do .NET Framework 2.0, geralmente localizado em “C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG”, e fui verificar se os registros estavam válidos:

Beleza! Os registros estão preenchidos no .NET Framework 2.0. Copiei os registros do System.Data do machine.config do Framework 2.0 e substitui os que estavam no Framework 4.0 (que estavam vazios). Após essa alteração, tentei executar novamente a opção de “Visualizar Dados” no Power BI Report Server e o erro continuou a aparecer na tela, mas ao analisar o log, a mensagem agora mudou:

A mensagem de erro agora nos indica um problema de permissão ao acessar o database “dirceuresende”, que o conjunto de dados compartilhado utilizada. O problema de conexão então foi resolvido e bastou criar um usuário para esse login no database de destino e liberar acesso de select na tabela utilizada para que o problema fosse definitivamente resolvido:

Você ainda não conhece o Power BI Report Server? Gostaria de saber mais sobre essa ferramenta ? Não deixe de conferir o meu artigo Vídeo – Power BI vs Reporting Services: Quem é melhor?.

É isso aí, pessoal!
Um grande abraço e até mais!

Obs: Tudo o que for demonstrado nesse artigo, serve tanto para o Power BI Report Server quanto para o SQL Server Reporting Services (SSRS), pois ambos utilizam a mesma estrutura.