Симптоми
Да предположим, че използвате персонализиран доставчик на отдалечено място за съхранение (мач за Купата) заедно със Runtime .NET Framework 4,0, за да съхранявате отдалечено петна за Microsoft SharePoint 2013. Когато се опитате да изпълните изчистването на отпадъците, което вътрешно нарича Microsoft. data. SqlRemoteBlobs. recan. exe получавате следното съобщение за грешка по време на събирането на отпадъците:
Започване на задачи по поддръжката. Стартиране на колекция от боклуци. Начално сканиране за препращане. <време>: заблуждавай: 0::: AssemblyLoad::: Възникна грешка при четене на файл с разширение XXXX. RemoteBlobStoreProvider. dll. <Time>: заблуждавай: 0::: AssemblyLoad::: System. BadImageFormatException: този блок е построен от Runtime по-нова от текущо заредената Runtime и не може да бъде зареден. (Изключение от HRESULT: 0x8013101B) <час>: заблуждавай: 0::: AssemblyLoad::: в System. reрефлексия. събрание. NLoadFile (низ Path, доказателствени данни ) <час>: заблуждавай: 0::: AssemblyLoad::: в System. Re. AssemblyLoad. LoadFile (низ path) <време>: грешка: 0:: SqlRemoteBlobs
Инструментът за поддръжка е съставен с помощта на .NET Framework 2,0 Runtime и не може да се зареждат събрания, базирани на .NET Framework 4,0 за изброяване на петна и събиране на боклуци. За всяко приложение на .NET Framework можете да използвате конфигурационен файл на приложението и да добавите етикета supportedRuntime , за да използвате по-нова версия на .NET Framework. Конфигурационният файл на компонента на поддръжката е Microsoft. data. SqlRemoteBlobs. MaintainerConfig. XML, както е в следния пример:
<startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
Ако се опитате да изпълните изчистването на отпадъците, Microsoft. data. SqlRemoteBlobs. поддръжката. exe срещне изключение за нарушение на достъпа, както следва:
System. AccessViolationException: опитващи се да четат или пишат защитената памет. Това често е индикация, че друга памет е повредена. в System. text. StringBuilder. AppendFormat (IFormatProvider доставчик, низ формат, обект [] опции) в Microsoft. data. SqlRemoteBlobs. InformationUtilities. InformationDetails () в Microsoft. data. BlobStores. LogProvider. CreateHeaderInformation () на Microsoft. data. BlobStores. LogProvider. Office (LogLevel logLevel) от Microsoft. data. BlobStores. DebugPrint. инициализиран (булеви initializeProviders) при Microsoft. data. BlobStores. DebugPrint. WriteLine (OperationType операция, LogLevel Level, Int32 blobStoreId, изключение за изключения, съобщение за низ, обект [] ARG) в Microsoft. data. SqlRemoteBlobs. поддръжката. Microsoft. Microsoft. remain (низ [])
Причина
Първото изключение възниква, защото Инструментът за поддръжка е съставен с помощта на .NET Framework 2,0. Инструментът не може да зареди функционални групи, базирани на .NET Framework 4,0. Изключение за нарушаване на достъпа се случва, когато се опитате да инициализирате доставчиците за регистриране за Microsoft. data. SqlRemoteBlobs. поддръжката. exe.
Решение
Корекцията за този проблем е налична в най-новата версия на пакета за изтегляне за КУПАТА. MSI. Ако използвате заобиколното решение, което се предлага, можете да премахнете или да разрешите етикетите, свързани с регистрирането, и да задържите етикета supportRuntime .Забележка Можете да преинсталирате мач за Купата, като използвате новия мач за Купата. MSI, за да приложите корекцията, без да прилагате актуализацията.
Изтегляне на пакета с функции на Microsoft SQL server 2014 Service Pack 1 (SP1) Изтеглете microsoft SQL Server 2012 Service Pack 3 (SP3) пакет с функции
Заобиколно решение
За да заобиколите този проблем, добавете следната допълнителна конфигурация към конфигурационния файл заедно с маркера за supportedRuntime . Тези етикети забраняват възможността за регистриране за инструмента за поддръжка, тъй като изключение се хвърля по време на инициализирането на доставчиците за регистриране.
<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>
Състоянието
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".