Applies ToSQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

Symptomer

Anta at du bruker en egendefinert leverandør av Remote BLOB Storage (RBS) sammen med Runtime .NET Framework 4.0 til å lagre BLOBer eksternt for Microsoft SharePoint 2013. Når du prøver å kjøre garbage oppryddingen som kaller internt Microsoft.Data.SqlRemoteBlobs.Maintainer.exe, får du følgende feilmelding under søppel samling:

Starter vedlikeholder oppgaver.Starter datasanering.Starter skanning for referanse.<Tidspunkt>: ERR: 0:::AssemblyLoad::: Det oppstod en feil under lesing av filtypen filen xxxx. RemoteBlobStoreProvider.dll.<Tidspunkt>: ERR: 0:::AssemblyLoad::: System.BadImageFormatException: denne samlingen er bygget av en kjøretidsfil som er nyere enn den gjeldende innlastede runtime og kan ikke lastes inn. (Unntak fra HRESULT: 0x8013101B)<Tidspunkt>: ERR: 0:::AssemblyLoad::: ved System.Reflection.Assembly.nLoadFile (String banen, bevis bevis)<Tidspunkt>: ERR: 0:::AssemblyLoad::: på System.Reflection.Assembly.LoadFile(String path) <tidspunkt>: ERR: 0:::AssemblyLoad::: på Microsoft.Data.SqlRemoteBlobs.ProviderClass.Initialize()

Vedlikeholdsprogrammet verktøyet er kompilert ved hjelp av .NET Framework 2.0-runtime, og det kan ikke laste samlinger som er basert på .NET Framework 4.0 for opplisting av BLOBer og datasanering. For alle .NET Framework-programmer, kan du bruke programmets konfigurasjonsfil, og Legg supportedRuntime -kode hvis du vil bruke en senere versjon av .NET Framework. Konfigurasjonsfilen for vedlikeholdsprogrammet komponenten er Microsoft.Data.SqlRemoteBlobs.MaintainerConfig.xml, som i følgende eksempel:

<startup>            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>

Hvis du prøver å kjøre opprydding av søppel, kommer Microsoft.Data.SqlRemoteBlobs.Maintainer.exe til et brudd på unntak i access, som følger:

System.AccessViolationException: Forsøkte å lese eller skrive til beskyttet minne. Dette er ofte en indikasjon på at annet minne er skadet.på System.Text.StringBuilder.AppendFormat (IFormatProvider, leverandør, strengformat, Object [] args)ved Microsoft.Data.SqlRemoteBlobs.InformationUtilities.InformationDetails()ved Microsoft.Data.BlobStores.LogProvider.CreateHeaderInformation()på Microsoft.Data.BlobStores.LogProvider.Initialize (LogLevel logLevel)ved Microsoft.Data.BlobStores.DebugPrint.InitializeProviders()på Microsoft.Data.BlobStores.DebugPrint.Initialize (boolsk initializeProviders)på Microsoft.Data.BlobStores.DebugPrint.WriteLine (OperasjonSkriv inn operasjonen, LogLevel-nivå, Int32 blobStoreId, unntak unntak, Strengemelding, Object [] arg)på Microsoft.Data.SqlRemoteBlobs.Maintainer.Maintainer.MainInternal() ved Microsoft.Data.SqlRemoteBlobs.Maintainer.Maintainer.Main (String [] args)

Årsak

Det første unntaket oppstår fordi verktøyet vedlikeholder samles inn ved hjelp av .NET Framework 2.0. Verktøyet kan ikke laste samlinger som er basert på .NET Framework 4.0. Access brudd på unntak oppstår når du prøver å starte logging-leverandører for Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.

Oppløsning

Hurtigreparasjonen for dette problemet er tilgjengelig i den siste funksjonen pack-nedlastingen for RBS.msi. Hvis du må bruke denne løsningen som foreslås, kan du fjerne eller aktivere logging-relaterte koder og holder den supportRuntime koden.Obs! Du kan installere RBS ved hjelp av den nye RBS.msi til å bruke reparasjonen uten å bruke oppdateringen.

Last ned Microsoft SQL Server 2014 Service Pack 1 (SP1)-funksjonspakken Last ned Microsoft SQL Server 2012 Service Pack 3 (SP3)-funksjonspakken

Løsningen

Du kan omgå dette problemet ved å legge til følgende ekstra konfigurasjon konfigurasjonsfil sammen med supportedRuntime -kode. Disse kodene deaktiverer loggingsfunksjonen for vedlikeholdsprogrammet verktøyet fordi det blir unntak under initialisering av leverandører for logging.

 <startup>            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup>    <RemoteBlobStorage>        <Logging>            <add key="ConsoleLog" value="0" />            <add key="FileLog" value="0" />            <add key="CircularLog" value="0" />            <add key="EventViewerLog" value="0" />            <add key="DatabaseTableLog" value="0" />        </Logging>    </RemoteBlobStorage>

Status

Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.

Fellesskap hjelper deg med å stille og svare på spørsmål, gi tilbakemelding og høre fra eksperter med stor kunnskap.