Simptomi
Pieņemiet, ka izmantojat pielāgotu attālās BLOB krātuves (RBS) pakalpojumu sniedzēju kopā ar izpildlaika .NET Framework 4,0, lai saglabātu BLOB attālināti programmā Microsoft SharePoint 2013. Kad mēģināt palaist atkritumu tīrīšanu, kas iekšēji zvana uz Microsoft. Data. SqlRemoteBlobs. exe, tiek parādīts šāds kļūdas ziņojums atkritumu savākšanas laikā:
Darba sākšanas uzdevumos. Sākta drazu kolekcija. Sākt atsauču skenēšanu. <laiku>: ERR: 0::: AssemblyLoad::: kļūda, lasot paplašinājuma failu xxxx. RemoteBlobStoreProvider. dll. <laiku>: ERR: 0::: AssemblyLoad::: System. BadImageFormatException: šo montāžu veido izpildlaiks, kas jaunāks par pašlaik ielādēto izpildlaiku, un to nevar ielādēt. (Izņēmums no HRESULT: 0x8013101B) <laiku>: ERR: 0::: AssemblyLoad::: at System. atspīdums. Assembly. NLoadFile (virknes ceļš, pierādījumi) <laiku>: ERR: 0::: AssemblyLoad::: at System. atspīdums. Assembly. LoadFile (virknes ceļš) <laiks>: ERR: 0::: AssemblyLoad::: at Microsoft. Data. SqlRemoteBlobs. ProviderClass.
Uzturētāja rīks tiek kompilēts, izmantojot .NET Framework 2,0 izpildlaiku, un to nevar ielādēt montāžās, kuru pamatā ir .NET Framework 4,0 par BLOB un drazu kolekcijas uzskaitījumu. Jebkurā .NET Framework lietojumprogrammā varat izmantot lietojumprogrammas konfigurācijas failu un pievienot supportedRuntime atzīmi, lai izmantotu jaunāku .NET Framework versiju. Uzturētāja komponenta konfigurācijas fails ir Microsoft. Data. SqlRemoteBlobs. MaintainerConfig. XML, piemēram, šajā piemērā:
<startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
Ja mēģināt palaist atkritumu tīrīšanu, korporācija Microsoft. Data. SqlRemoteBlobs. Saglabātājs. exe saskaras ar piekļuves pārkāpuma izņēmumu, kā norādīts tālāk.
System. AccessViolationException: mēģināja lasīt vai rakstīt aizsargātu atmiņu. Bieži vien tas norāda, ka cita atmiņa ir bojāta. sadaļā System. Text. StringBuilder. AppendFormat (IFormatProvider nodrošinātājs, virknes formāts, objekts [] args) vietnē Microsoft. Data. SqlRemoteBlobs. InformationUtilities. InformationDetails () vietnē Microsoft. Data. BlobStores. LogProvider. CreateHeaderInformation () vietnē Microsoft. Data. BlobStores.. LogProvider BlobStores. DebugPrint. inicializējiet (Boolean initializeProviders) vietnē Microsoft. Data. BlobStores. DebugPrint. WriteLine (OperationType darbība, LogLevel līmenis, Int32 blobStoreId, izņēmuma izņēmums, virknes ziņojums, objekts [] ARG) vietnē Microsoft. Data. SqlRemoteBlobs. saglabāt........ MainInternal () pie Microsoft. Data..
Cēlonis
Pirmais izņēmums notiek tāpēc, ka uzturētāja rīks ir kompilēts, izmantojot .NET Framework 2,0. Rīks nevar ielādēt montāžas, kuru pamatā ir .NET Framework 4,0. Access pārkāpuma Izņēmums notiek, kad mēģināt inicializēt Microsoft. Data. SqlRemoteBlobs.
Risinājums
Šīs problēmas labojums ir pieejams jaunākajā līdzekļu pakotnē, ko lejupielādējat no RBS. msi. Ja izmantojat risinājumu, kas tiek ieteikts, varat noņemt vai iespējot ar reģistrēšanu saistītos tagus un patur supportRuntime atzīmi.Piezīme. Varat pārinstalēt RBS, izmantojot jauno RBS. msi, lai lietotu labojumu, nelietojot atjauninājumu.
Microsoft SQL server 2014 1. servisa pakotnes (SP1) līdzekļa pakotnes lejupielādes lejupielāde microsoft SQL Server 2012 3. servisa pakotnes (SP3) līdzekļu pakotnē
Risinājums
Lai novērstu šo problēmu, pievienojiet konfigurācijas failam tālāk norādīto papildu konfigurāciju kopā ar supportedRuntime atzīmi. Šie tagi atspējo saglabāšanas rīka reģistrēšanas iespējas, jo reģistrēšanas pakalpojumu sniedzēju inicializācijas laikā tiek izmests izņēmums.
<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>
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".