KB3162396 - CORREÇÃO: Fontes de dados compartilhadas e credenciais armazenadas são removidas pelos trabalhos de limpeza diária do SharePoint no SSRS

Aplica-se A
SQL Server 2012 Service Pack 3 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Sintomas

Suponha que você instale SQL Server Reporting Services no modo do SharePoint para o SharePoint 2013. Se o banco de dados do catálogo do SharePoint estiver inacessível pelo Servidor de Relatório e o trabalho de limpeza diária do SharePoint estiver em execução, a cópia em cache dos relatórios e conjuntos de dados poderá ser removida do banco de dados do Reporting Services. Isto fará com que as credenciais armazenadas sejam perdidas.

Nos logs de erros do Reporting Services, você pode receber mensagens de erro semelhantes à seguinte:

Nota

ERRO: Lançando Microsoft.ReportingServices.Library.ReportServerDatabaseUnavailableException: , Microsoft.ReportingServices.Library.ReportServerDatabaseUnavailableException: o servidor de relatório não pode abrir uma conexão com o banco de dados do servidor de relatório. É necessária uma ligação à base de dados para todos os pedidos e processos. >--- System.Data.SqlClient.SqlException: Ocorreu um erro relacionado à rede ou específico da instância ao estabelecer uma conexão com SQL Server. O servidor não foi encontrado ou não estava acessível. Verifique se o nome da instância está correto e se SQL Server está configurado para permitir conexões remotas. (provedor: provedor TCP, erro: 0 - Apenas um uso de cada endereço de soquete (protocolo/endereço de rede/porta) normalmente é permitido.) >--- System.ComponentModel.Win32Exception: Apenas um uso de cada endereço de soquete (protocolo/endereço de rede/porta) normalmente é permitido
   --- Rastreio da pilha de exceção interna ---
   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   em System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource'1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   em System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource'1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   em System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource'1 retry, DbConnectionOptions userOptions)
   em System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource'1 retry)
   em System.Data.SqlClient.SqlConnection.Open()
   em Microsoft.ReportingServices.Library.ConnectionManager.OpenConnection()
   --- Fim da pilha de exceção interna ---;
INFO: Failed to create SPSite for <url>: System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at <url> that could accept the message. Isso geralmente é causado por um endereço incorreto ou ação SOAP. Consulte InnerException, se presente, para obter mais detalhes. >--- System.Net.WebException: Não é possível conectar-se ao servidor remoto ---> System.Net.Sockets.SocketException: Uma operação em um soquete não pôde ser executada porque o sistema não tinha espaço suficiente no buffer ou porque uma fila estava cheia [::1]:32843
   em System.Net.Sockets.Socket.DoConnect(EndPoint, endPointSnapshot, SocketAddress, socketAddress)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult, asyncResult, Exception& exception)
   --- Rastreio da pilha de exceção interna ---
   em System.Net.HttpWebRequest.GetRequestStream(TransportContext&contexto)
   em System.Net.HttpWebRequest.GetRequestStream()
   em System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream()
   --- Rastreio da pilha de exceção interna ---
Rastreamento de pilha do servidor:
   em System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream()
   em System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout)
   em System.ServiceModel.Channels.HttpChannelFactory'1.HttpRequestChannel.HttpChannelRequest.SendRequest(Mensagem de mensagem, TimeSpan timeout)
   em System.ServiceModel.Channels.RequestChannel.Request(mensagem de mensagem, tempo limite TimeSpan)
   at System.ServiceModel.Channels.ServiceChannel.Call(Ação de cadeia de caracteres, oneway booleano, operação ProxyOperationRuntime, Object[] ins, Object[] outs, TimeSpan timeout)
   em System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, operação ProxyOperationRuntime)
   em System.ServiceModel.Channels.ServiceChannelProxy.Invoke(mensagem IMessage)
Exceção relançada em [0]:
   em System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   em System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData, tipo Int32)
   em Microsoft.IdentityModel.Protocols.WSTrust.IWSTrustContract.Issue(Message message)
   em Microsoft.IdentityModel.Protocols.WSTrust.WSTrustChannel.Issue(RequestSecurityToken rst, RequestSecurityTokenResponse& rstr)
   em Microsoft.IdentityModel.Protocols.WSTrust.WSTrustChannel.Issue(RequestSecurityToken rst)
   em Microsoft.SharePoint.SPSecurityContext.SecurityTokenForContext(Uri context, Boolean bearerToken, SecurityToken onBehalfOf, SecurityToken actAs, SecurityToken delegateTo, SPRequestSecurityTokenProperties properties)
   em Microsoft.SharePoint.SPSecurityContext.SecurityTokenForLegacyLoginContext(Uri context)
   em Microsoft.SharePoint.SPSite.InitUserToken(solicitação SPRequest)
   em Microsoft.SharePoint.SPSite.SPSiteConstructor(SPFarm farm, Guid applicationId, Guid contentDatabaseId, Guid siteId, Guid siteSubscriptionId, SPUrlZone zone, Uri requestUri, String serverRelativeUrl, Boolean hostHeaderIsSiteName, SPUserToken userToken, Boolean appWebRequest, String appHostHeaderRedirectDomain, String appSiteDomainPrefix, String subscriptionName, String appSiteDomainId, Uri primaryUri)
   em Microsoft.SharePoint.SPSite.. ctor(Guid id, SPFarm farm, SPUrlZone zone, SPUserToken userToken)
   em Microsoft.ReportingServices.SharePoint.Objects.RSSharePointClassFactory.CreateSPSite(ID de GUID, zona RSSPUrlZone)
   em Microsoft.ReportingServices.SharePoint.Server.SharePointServiceHelper.GetSiteFromCatalogPath(String catalogPath, Int32 zone, Boolean noThrow)
w3wp!library!123!<DateTime>:: w AVISO: O URL> do item <de catálogo não foi encontrado no site do SharePoint. Este será eliminado do Catálogo.

Além disso, nos logs ULS do SharePoint, você recebe uma mensagem de erro semelhante à seguinte:

Nota

<DateTime> w3wp.exe (0x2424) 0x12E4 Autenticação de Declarações do SharePoint Foundation fsq7 High SPSecurityContext: A solicitação de token de segurança falhou com exceção: System.ServiceModel.EndpointNotFoundException: Não havia nenhum ponto de extremidade escutando na <url> que pudesse aceitar a mensagem. Isso geralmente é causado por um endereço incorreto ou ação SOAP. Consulte InnerException, se presente, para obter mais detalhes. >--- System.Net.WebException: Não é possível conectar-se ao servidor remoto ---> System.Net.Sockets.SocketException: Uma operação em um soquete não pôde ser executada porque o sistema não tinha espaço suficiente no buffer ou porque uma fila estava cheia [::1]:32843

      

Resolução

Esse problema foi corrigido primeiro nas seguintes atualizações cumulativas para SQL Server:

Acerca das atualizações cumulativas para SQL Server

Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Consulte as atualizações cumulativas mais recentes para SQL Server:

      

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".

Referências

Saiba mais sobre a terminologia que a Microsoft utiliza para descrever as atualizações de software.