FIX: Violazione di accesso quando si desidera gestire RBS con la 4.0 di.NET Framework nel file di configurazione correlati in SQL Server

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 2960310
Sintomi
Si supponga che si utilizza un provider di archiviazione di BLOB remoto (RBS) personalizzato con Runtime.NET Framework 4.0 per memorizzare dei BLOB in modalità remota per Microsoft SharePoint 2013. Quando si tenta di eseguire la pulitura garbage che internamente chiama Microsoft.Data.SqlRemoteBlobs.Maintainer.exe, viene visualizzato il seguente messaggio di errore durante l'operazione di garbage collection:
Avvio delle attività di manutenzione.
Avvio procedura di Garbage Collection.
Analisi di riferimento iniziale.
Ora>: ERRORE: 0:::AssemblyLoad::: si è verificato un errore durante la lettura di estensione file xxxx. RemoteBlobStoreProvider.dll.
Ora>: ERRORE: 0:::AssemblyLoad::: System. BadImageFormatException: questo assembly è stato creato da un runtime più recente di quello attualmente caricato e non può essere caricato. (Eccezione da HRESULT: 0x8013101B)
Ora>: ERRORE: 0:::AssemblyLoad::: in System.Reflection.Assembly.nLoadFile (percorso di stringa, prova evidence)
Ora>: ERRORE: 0:::AssemblyLoad::: in System.Reflection.Assembly.LoadFile (percorso di stringa)Ora>: ERRORE: 0:::AssemblyLoad::: in Microsoft.Data.SqlRemoteBlobs.ProviderClass.Initialize()

Lo strumento per la manutenzione viene compilato utilizzando il runtime di.NET Framework 2.0 e in grado di caricare gli assembly che si basano sul 4.0 di.NET Framework per l'enumerazione dei BLOB e garbage collection. Per qualsiasi applicazione.NET Framework, è possibile utilizzare file di configurazione dell'applicazione e aggiungere il tag supportedRuntime per utilizzare la versione di.NET Framework. Il file di configurazione del componente per la manutenzione è Microsoft.Data.SqlRemoteBlobs.MaintainerConfig.xml, come illustrato di seguito:
<startup>            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
Se si tenta di eseguire la pulitura di garbage, Microsoft.Data.SqlRemoteBlobs.Maintainer.exe rileva un'eccezione di violazione di accesso, come indicato di seguito:
System. AccessViolationException: Tentativo di lettura o scrittura della memoria protetta. Si tratta spesso di un'indicazione che l'altra memoria è danneggiata.
in System.Text.StringBuilder.AppendFormat (IFormatProvider provider, il formato di stringa, argomenti Object [])
in Microsoft.Data.SqlRemoteBlobs.InformationUtilities.InformationDetails()
in Microsoft.Data.BlobStores.LogProvider.CreateHeaderInformation()
in Microsoft.Data.BlobStores.LogProvider.Initialize (LogLevel logLevel)
in Microsoft.Data.BlobStores.DebugPrint.InitializeProviders()
in Microsoft.Data.BlobStores.DebugPrint.Initialize (Boolean initializeProviders)
in Microsoft.Data.BlobStores.DebugPrint.WriteLine (operazione OperationType, livello LogLevel, Int32 blobStoreId, eccezione eccezione, stringa di messaggio, arg [oggetto)
in Microsoft.Data.SqlRemoteBlobs.Maintainer.Maintainer.MainInternal() in Microsoft.Data.SqlRemoteBlobs.Maintainer.Maintainer.Main (String [] args)
Cause
La prima eccezione si verifica perché lo strumento per la manutenzione viene compilato mediante.NET Framework 2.0. Non è possibile caricare gli assembly che si basano sul 4.0 di.NET Framework. L'eccezione di violazione di accesso si verifica quando si tenta di inizializzare i provider di registrazione per Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.
Risoluzione
La correzione di questo problema è disponibile nel download del Service pack più recenti funzionalità per RBS.msi. Se usate la soluzione suggerita, è possibile rimuovere o attivare la registrazione relativi tag e mantiene il tag supportRuntime .

Nota È possibile reinstallare RBS utilizzando il nuovo RBS.msi di applicare la correzione senza applicare l'aggiornamento.
Workaround
Per risolvere questo problema, aggiungere la seguente configurazione aggiuntiva per il file di configurazione con il tag supportedRuntime . Questi tag disattivare la funzionalità di registrazione per lo strumento per la manutenzione in quanto l'eccezione viene generata durante l'inizializzazione dei provider di registrazione.
 <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 ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 2960310 - Ultima revisione: 11/09/2016 21:17:00 - Revisione: 6.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 KbMtit
Feedback