MEMPERBAIKI: pelanggaran akses ketika Anda mempertahankan RBS dengan .NET Framework 4.0 berkas konfigurasi terkait di SQL Server

PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.

Klik disini untuk melihat versi Inggris dari artikel ini: 2960310
Gejala
Misalnya Anda menggunakan penyedia penyimpanan BLOB jarak jauh (RBS) kustom bersama-sama dengan waktu jalan .NET Framework 4.0 untuk menyimpan gumpalan jarak jauh untuk Microsoft SharePoint 2013. Ketika Anda mencoba menjalankan pembersihan sampah yang internal memanggil Microsoft.Data.SqlRemoteBlobs.Maintainer.exe, Anda menerima pesan galat berikut selama pengumpulan sampah:
Memulai pengelola tugas.
Mulai pengumpulan sampah.
Memulai pemindaian referensi.
Waktu>: ERR: 0:::AssemblyLoad::: terjadi galat saat membaca ekstensi file xxxx. RemoteBlobStoreProvider.dll.
Waktu>: ERR: 0:::AssemblyLoad::: System.BadImageFormatException: rakitan ini dibuat oleh runtime yang lebih baru dari runtime dimuat saat ini dan tidak dapat dimuat. (Pengecualian dari HRESULT: 0x8013101B)
Waktu>: ERR: 0:::AssemblyLoad::: pada System.Reflection.Assembly.nLoadFile (String path, bukti bukti)
Waktu>: ERR: 0:::AssemblyLoad::: pada System.Reflection.Assembly.LoadFile (String jalur)Waktu>: ERR: 0:::AssemblyLoad::: di Microsoft.Data.SqlRemoteBlobs.ProviderClass.Initialize()

Alat pengelola dikompilasi dengan menggunakan .NET Framework 2.0 runtime, dan tidak dapat memuat rakitan yang didasarkan pada .NET Framework 4.0 untuk enumerasi gumpalan dan pengumpulan sampah. Untuk aplikasi .NET Framework, Anda dapat menggunakan file konfigurasi aplikasi, dan Tambahkan tag supportedRuntime menggunakan versi .NET Framework. Berkas konfigurasi komponen pengelola adalah Microsoft.Data.SqlRemoteBlobs.MaintainerConfig.xml, seperti dalam contoh berikut:
<startup>            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
Jika Anda mencoba menjalankan pembersihan sampah, Microsoft.Data.SqlRemoteBlobs.Maintainer.exe mengalami pelanggaran akses pengecualian, sebagai berikut:
System.AccessViolationException: Mencoba membaca atau menulis kehabisan memori yang dilindungi. Hal ini sering indikasi lainnya rusak.
di System.Text.StringBuilder.AppendFormat (IFormatProvider penyedia, String format, objek] args)
di Microsoft.Data.SqlRemoteBlobs.InformationUtilities.InformationDetails()
di Microsoft.Data.BlobStores.LogProvider.CreateHeaderInformation()
di Microsoft.Data.BlobStores.LogProvider.Initialize (LogLevel logLevel)
di Microsoft.Data.BlobStores.DebugPrint.InitializeProviders()
di Microsoft.Data.BlobStores.DebugPrint.Initialize (Boolean initializeProviders)
di Microsoft.Data.BlobStores.DebugPrint.WriteLine (OperationType operasi, tingkat LogLevel, Int32 blobStoreId, pengecualian pengecualian, String pesan, objek] arg)
di Microsoft.Data.SqlRemoteBlobs.Maintainer.Maintainer.MainInternal() di Microsoft.Data.SqlRemoteBlobs.Maintainer.Maintainer.Main (String] args)
Penyebab
Pengecualian pertama terjadi karena alat pengelola dikompilasi dengan menggunakan .NET Framework 2.0. Alat tidak dapat memuat rakitan yang didasarkan pada .NET Framework 4.0. pelanggaran akses pengecualian terjadi saat Anda mencoba untuk menyiapkan penyedia pengelogan untuk Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.
Pemecahan masalah
Perbaikan untuk masalah ini tersedia dalam download paket fitur terbaru untuk RBS.msi. Jika Anda telah menggunakan solusi yang disarankan, Anda dapat menghapus atau mengaktifkan pengelogan terkait tag dan membuat supportRuntime tag.

Catatan Anda dapat menginstal ulang RBS menggunakan RBS.msi baru untuk menerapkan perbaikan tanpa menerapkan pembaruan.
Teknik pemecahan masalah
Untuk mengatasi masalah ini, Tambahkan konfigurasi tambahan berikut ini ke berkas konfigurasi bersama-sama dengan supportedRuntime tag. Tag ini menonaktifkan kemampuan pencatatan log untuk alat pengelola karena pengecualian telah dilemparkan selama inisialisasi penyedia log.
 <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 telah memastikan bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Properti

ID Artikel: 2960310 - Tinjauan Terakhir: 11/09/2016 21:16:00 - Revisi: 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 KbMtid
Tanggapan