KB3162396 - ÅTGÄRD: Delade datakällor och lagrade autentiseringsuppgifter tas bort av SharePoint dagliga rensningsjobb i SSRS

Gäller för
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)

Symptom

Anta att du installerar SQL Server Reporting Services i SharePoint-läge för SharePoint 2013. Om SharePoint-katalogdatabasen inte kan nås av rapportservern och det dagliga rensningsjobbet i SharePoint körs, kan den cachelagrade kopian av rapporter och datauppsättningar tas bort från Reporting Services-databasen. Det gör att lagrade autentiseringsuppgifter går förlorade.

I Reporting Services-felloggarna kan du få felmeddelanden som liknar följande:

Obs

FEL: Kasta Microsoft.ReportingServices.Library.ReportServerDatabaseUnavailableException: , Microsoft.ReportingServices.Library.ReportServerDatabaseUnavailableException: Rapportservern kan inte öppna en anslutning till rapportserverns databas. En anslutning till databasen krävs för alla begäranden och all bearbetning. >--- System.Data.SqlClient.SqlException: Ett nätverksrelaterat eller instansspecifikt fel uppstod när en anslutning till SQL Server upprättades. Servern hittades inte eller var inte tillgänglig. Kontrollera att instansnamnet är korrekt och att SQL Server är konfigurerat för att tillåta fjärranslutningar. (provider: TCP-provider, fel: 0 – Endast en användning av varje socketadress (protokoll/nätverksadress/port) tillåts normalt.) >--- System.ComponentModel.Win32Exception: Endast en användning av varje socketadress (protokoll/nätverksadress/port) tillåts normalt
   --- Slutet av den inre undantagsstackspårningen ---
   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource'1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource'1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource'1 retry, DbConnectionOptions userOptions)
   at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource'1 retry)
   vid System.Data.SqlClient.SqlConnection.Open()
   vid Microsoft.ReportingServices.Library.ConnectionManager.OpenConnection()
   --- Slutet av den inre undantagsstackspårningen ---;
INFO: Det gick inte att skapa SPSite för <url>: System.ServiceModel.EndpointNotFoundException: Det fanns ingen slutpunkt som lyssnade på <URL:> en som kunde acceptera meddelandet. Detta orsakas ofta av en felaktig adress eller SOAP-åtgärd. Mer information finns i InnerException, om det finns. >--- System.Net.WebException: Det går inte att ansluta till fjärrservern ---> System.Net.Sockets.SocketException: En socketåtgärd kunde inte utföras eftersom systemet saknade tillräckligt med buffertutrymme eller eftersom kön var full [::1]:32843
   at 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)
   --- Slutet av den inre undantagsstackspårningen ---
   vid System.Net.HttpWebRequest.GetRequestStream(TransportContext&kontext)
   vid System.Net.HttpWebRequest.GetRequestStream()
   på System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream()
   --- Slutet av den inre undantagsstackspårningen ---
Spårning av serverstack:
   på System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream()
   at System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout)
   at System.ServiceModel.Channels.HttpChannelFactory'1.HttpRequestChannel.HttpChannelRequest.SendRequest(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   på System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime-åtgärd)
   vid System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage-meddelande)
Undantaget genereras om vid [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData, Int32 typ)
   på Microsoft.IdentityModel.Protocols.WSTrust.IWSTrustContract.Issue(Message message)
   på Microsoft.IdentityModel.Protocols.WSTrust.WSTrustChannel.Issue(RequestSecurityToken rst, RequestSecurityTokenResponse& rstr)
   på Microsoft.IdentityModel.Protocols.WSTrust.WSTrustChannel.Issue(RequestSecurityToken rst)
   at Microsoft.SharePoint.SPSecurityContext.SecurityTokenForContext(Uri context, Boolean bearerToken, SecurityToken onBehalfOf, SecurityToken actAs, SecurityToken delegateTo, SPRequestSecurityTokenProperties properties)
   på Microsoft.SharePoint.SPSecurityContext.SecurityTokenForLegacyLoginContext(URI-kontext)
   at Microsoft.SharePoint.SPSite.InitUserToken(SPRequest request)
   at 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)
   på Microsoft.SharePoint.SPSite.. ctor(Guid id, SPFarm farm, SPUrlZone zone, SPUserToken userToken)
   at Microsoft.ReportingServices.SharePoint.Objects.RSSharePointClassFactory.CreateSPSite(Guid id, RSSPUrlZone zone)
   at Microsoft.ReportingServices.SharePoint.Server.SharePointServiceHelper.GetSiteFromCatalogPath(String catalogPath, Int32 zone, Boolean noThrow)
w3wp!library!123!<DateTime>:: w WARN: Katalogobjektets <URL> hittades inte på SharePoint-webbplatsen. Den tas bort från katalogen.

I SharePoint ULS-loggarna får du dessutom ett felmeddelande som ser ut ungefär så här:

Obs

<DateTime> w3wp.exe (0x2424) 0x12E4 SharePoint Foundation-anspråksautentisering fsq7 High SPSecurityContext: Begäran om säkerhetstoken misslyckades med undantag: System.ServiceModel.EndpointNotFoundException: Det fanns ingen slutpunkt som lyssnade på <URL:> en som kunde acceptera meddelandet. Detta orsakas ofta av en felaktig adress eller SOAP-åtgärd. Mer information finns i InnerException, om det finns. >--- System.Net.WebException: Det går inte att ansluta till fjärrservern ---> System.Net.Sockets.SocketException: En socketåtgärd kunde inte utföras eftersom systemet saknade tillräckligt med buffertutrymme eller eftersom kön var full [::1]:32843

      

Lösning

Det här problemet åtgärdades först i följande kumulativa uppdateringar för SQL Server:

Om kumulativa uppdateringar för SQL Server

Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:

      

Status

Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".

Referenser

Läs mer om den terminologi som Microsoft använder för att beskriva programuppdateringar.