KB3162396 - CORREÇÃO: as origens de dados partilhadas e as credenciais armazenadas são removidas pelas tarefas 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 instala SQL Server Reporting Services no Modo SharePoint para SharePoint 2013. Se a base de dados do catálogo do SharePoint estiver inacessível pelo Report Server e a tarefa de limpeza diária do SharePoint estiver em execução, a cópia em cache de relatórios e conjuntos de dados poderá ser removida da base de dados do Reporting Services. Isto fará com que as credenciais armazenadas sejam perdidas.

Nos registos de erros do Reporting Services, pode receber mensagens de erro semelhantes às seguintes:

Nota

ERRO: A lançar Microsoft.ReportingServices.Library.ReportServerDatabaseUnavailableException: , Microsoft.ReportingServices.Library.ReportServerDatabaseUnavailableException: o servidor de relatórios não consegue abrir uma ligação à base de dados do servidor de relatórios. É necessária uma ligação à base de dados para todos os pedidos e processamento. >--- System.Data.SqlClient.SqlException: Ocorreu um erro relacionado com a rede ou específico da instância ao estabelecer uma ligação ao 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 ligações remotas. (fornecedor: Fornecedor TCP, erro: 0 - É normalmente permitida apenas uma utilização de cada endereço de socket (endereço/porta de protocolo/rede). >--- System.ComponentModel.Win32Exception: é normalmente permitida apenas uma utilização de cada endereço de socket (protocolo/endereço/porta de rede)
   --- Fim do rastreio interno da pilha de exceções ---
   em 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 tente novamente)
   em System.Data.SqlClient.SqlConnection.Open()
   em Microsoft.ReportingServices.Library.ConnectionManager.OpenConnection()
   --- Fim da --- de rastreio da pilha de exceções interna;
INFORMAÇÕES: Falha ao criar o SPSite para <url>: System.ServiceModel.EndpointNotFoundException: não houve nenhum ponto final a escutar no <URL> que pudesse aceitar a mensagem. Isto é frequentemente causado por um endereço incorreto ou uma ação SOAP. Consulte InnerException, se estiver presente, para obter mais detalhes. >--- System.Net.WebException: Não é possível ligar ao servidor remoto ---> System.Net.Sockets.SocketException: não foi possível executar uma operação num socket porque o sistema não tinha espaço suficiente na memória intermédia ou porque uma fila estava cheia [::1]:32843
   em System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
   em System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, endereço& IPAddress, estado ConnectSocketState, IAsyncResult asyncResult, Exceção& exceção)
   --- Fim do rastreio interno da pilha de exceções ---
   em System.Net.HttpWebRequest.GetRequestStream(TransportContext&context)
   em System.Net.HttpWebRequest.GetRequestStream()
   em System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream()
   --- Fim do rastreio interno da pilha de exceções ---
Rastreio de pilha de 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, Tempo Limite do Intervalo de Tempo)
   em System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   em System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, 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)
A exceção recuou 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(Mensagem)
   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(contexto Uri, BearerToken booleano, SecurityToken onBehalfOf, SecurityToken actAs, SecurityToken delegateTo, SPRequestSecurityTokenProperties properties)
   em Microsoft.SharePoint.SPSecurityContext.SecurityTokenForLegacyLoginContext(contexto Uri)
   em Microsoft.SharePoint.SPSite.InitUserToken(pedido SPRequest)
   em Microsoft.SharePoint.SPSite.SPSiteConstructor(farm SPFarm, Guid applicationId, Guid contentDatabaseId, Guid siteId, Guid siteSubscriptionId, zona SPUrlZone, 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(ID guid, farm SPFarm, zona SPUrlZone, SPUserToken userToken)
   em Microsoft.ReportingServices.SharePoint.Objects.RSSharePointClassFactory.CreateSPSite(ID guid, zona RSSPUrlZone)
   em Microsoft.ReportingServices.SharePoint.Server.SharePointServiceHelper.GetSiteFromCatalogPath(String catalogPath, Int32 zone, Boolean noThrow)
w3wp!library!123!<DateTime>:: w WARN: O URL> do item <do catálogo não foi encontrado no site do SharePoint. Será eliminado do Catálogo.

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

Nota

<DateTime> w3wp.exe (0x2424) 0x12E4 Autenticação de Afirmações do SharePoint Foundation fsq7 High SPSecurityContext: O pedido de token de segurança falhou com a exceção: System.ServiceModel.EndpointNotFoundException: não havia nenhum ponto final a escutar no <URL> que pudesse aceitar a mensagem. Isto é frequentemente causado por um endereço incorreto ou uma ação SOAP. Consulte InnerException, se estiver presente, para obter mais detalhes. >--- System.Net.WebException: Não é possível ligar ao servidor remoto ---> System.Net.Sockets.SocketException: não foi possível executar uma operação num socket porque o sistema não tinha espaço suficiente na memória intermédia ou porque uma fila estava cheia [::1]:32843

      

Resolução

Este problema foi corrigido pela primeira vez nas seguintes atualizações cumulativas para SQL Server:

Acerca das atualizações cumulativas do SQL Server

Cada nova atualização cumulativa para SQL Server contém todas as correções e todas as correções de segurança incluídas na 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.