KORRIGER: Brudd på tilgangstillatelse når du vedlikeholder RBS med .NET Framework 4.0 i relaterte konfigurasjonsfilen i SQL Server

VIKTIG: Denne artikkelen ble oversatt med maskinoversettelsesprogramvare fra Microsoft og muligens redigert av Microsoft Community via CTF-teknologi i stedet for av en oversetter. Microsoft tilbyr både menneskelig oversatte og maskinoversatte/Community-redigerte artikler, slik at du får tilgang til alle artiklene i vår Knowledge Base på ditt eget språk. En maskinoversatt eller Community-redigert artikkel er imidlertid ikke alltid perfekt. Den kan inneholde feil i vokabular, syntaks eller grammatikk, mye likt en fremmedspråklig som forsøker å snakke språket ditt. Microsoft har ikke ansvar for unøyaktige opplysninger, feil eller skade forårsaket av feilaktig oversettelse av innholdet eller kundenes bruk av informasjonen. Microsoft oppdaterer jevnlig maskinoversettelsesprogramvaren og -verktøyene for å forbedre redigering av maskinoversatte tekster.

Den engelske versjonen av denne artikkelen er den følgende: 2960310
Symptom
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.
Tid>: FEIL: 0:::AssemblyLoad::: Det oppstod en feil under lesing av filtypen filen xxxx. RemoteBlobStoreProvider.dll.
Tid>: FEIL: 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)
Tid>: FEIL: 0:::AssemblyLoad::: ved System.Reflection.Assembly.nLoadFile (String banen, bevis bevis)
Tid>: FEIL: 0:::AssemblyLoad::: ved System.Reflection.Assembly.LoadFile (String bane)Tid>: FEIL: 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.
Lø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.
Workaround
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".

Advarsel: Denne artikkelen er autooversatt

Egenskaper

Artikkel-ID: 2960310 – Forrige gjennomgang: 11/10/2016 00:50:00 – Revisjon: 7.0

Microsoft SQL Server 2012 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2012 Service Pack 2

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2960310 KbMtno
Tilbakemelding