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:
- Atualização Cumulativa 1 para SQL Server 2014 SP2
- Atualização Cumulativa 8 para SQL Server 2014 SP1
- Atualização Cumulativa 2 para SQL Server 2016
- Atualização Cumulativa 14 para SQL Server 2014
- Atualização Cumulativa 4 para SQL Server 2012 SP3
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:
- Atualização cumulativa mais recente do SQL Server 2016
- Atualização cumulativa mais recente para SQL Server 2014 (SP1/SP2)
- Atualização cumulativa mais recente do SQL Server 2012 SP3
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.