Khắc PHỤC: Vi phạm truy nhập khi bạn duy trì RBS Khuôn khổ .NET 4.0 trong tập tin cấu hình liên quan trong SQL Server

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch thuật của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa lại thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung cấp các bài viết được cả biên dịch viên và phần mềm dịch thuật thực hiện và cộng đồng chỉnh sửa lại để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng nhiều ngôn ngữ Tuy nhiên, bài viết do máy dịch hoặc thậm chí cộng đồng chỉnh sửa sau không phải lúc nào cũng hoàn hảo. Các bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 2960310
Triệu chứng
Giả sử rằng bạn đang sử dụng một nhà cung cấp lưu trữ BLOB từ xa (RBS) tuỳ chỉnh cùng với thời gian chạy Khuôn khổ .NET 4.0 để lưu trữ các đốm màu từ xa cho Microsoft SharePoint 2013. Khi bạn cố gắng chạy Dọn sạch thùng rác trong gọi Microsoft.Data.SqlRemoteBlobs.Maintainer.exe, bạn nhận được thông báo lỗi trong quá trình thu gom rác:
Khởi động tác vụ duy trì.
Bắt đầu thu gom rác.
Bắt đầu quét tài liệu tham khảo.
GiờChủ: THÔNG: 0:::AssemblyLoad â xảy ra lỗi khi đọc phần mở rộng tệp xxxx. RemoteBlobStoreProvider.dll.
GiờChủ: THÔNG: 0:::AssemblyLoad â System.BadImageFormatException: chi tiết này được xây dựng theo thời gian chạy mới hơn nạp hiện thời gian và không thể nạp. (Ngoại lệ từ HRESULT: 0x8013101B)
GiờChủ: THÔNG: 0:::AssemblyLoad â tại System.Reflection.Assembly.nLoadFile (đường dây, bằng chứng chứng)
GiờChủ: THÔNG: 0:::AssemblyLoad â tại System.Reflection.Assembly.LoadFile (chuỗi đường dẫn)GiờChủ: THÔNG: 0:::AssemblyLoad â tại Microsoft.Data.SqlRemoteBlobs.ProviderClass.Initialize()

Công cụ duy trì được biên dịch bằng cách sử dụng thời gian Khuôn khổ .NET 2.0 và nó không thể tải hệ thống dựa trên Khuôn khổ .NET 4.0 để liệt kê các đốm màu và thu gom rác. Đối với bất kỳ ứng dụng Khuôn khổ .NET, bạn có thể sử dụng tập tin cấu hình của ứng dụng, và gắn thẻ supportedRuntime sử dụng phiên bản mới hơn của Khuôn khổ .NET. Tệp cấu hình của phần duy trì là Microsoft.Data.SqlRemoteBlobs.MaintainerConfig.xml, như trong ví dụ sau:
<startup>            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
Nếu bạn cố gắng chạy Dọn sạch thùng rác, Microsoft.Data.SqlRemoteBlobs.Maintainer.exe gặp ngoại lệ vi phạm truy nhập, như sau:
System.AccessViolationException: Cố gắng để đọc hoặc ghi nhớ được bảo vệ. Điều này thường chỉ một bộ nhớ khác bị hỏng.
tại System.Text.StringBuilder.AppendFormat (nhà cung cấp IFormatProvider, Chuỗi định dạng đối tượng] args)
tại Microsoft.Data.SqlRemoteBlobs.InformationUtilities.InformationDetails()
tại Microsoft.Data.BlobStores.LogProvider.CreateHeaderInformation()
tại Microsoft.Data.BlobStores.LogProvider.Initialize (LogLevel logLevel)
tại Microsoft.Data.BlobStores.DebugPrint.InitializeProviders()
tại Microsoft.Data.BlobStores.DebugPrint.Initialize (Boolean initializeProviders)
tại Microsoft.Data.BlobStores.DebugPrint.WriteLine (OperationType hoạt động LogLevel cấp, Int32 blobStoreId, ngoại trừ ngoại lệ, Chuỗi thư, đối tượng [arg)
tại Microsoft.Data.SqlRemoteBlobs.Maintainer.Maintainer.MainInternal() tại Microsoft.Data.SqlRemoteBlobs.Maintainer.Maintainer.Main (chuỗi] args)
Nguyên nhân
Ngoại lệ đầu tiên xảy ra do cụ duy trì được biên dịch bằng cách sử dụng Khuôn khổ .NET 2.0. Công cụ không thể tải hệ thống dựa trên Khuôn khổ .NET 4.0. Ngoại lệ vi phạm truy nhập xảy ra khi bạn cố gắng khởi tạo các nhà cung cấp kí nhập cho Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.
Giải pháp
Sửa chữa cho vấn đề này có sẵn trong bản tải xuống gói tính năng mới nhất cho RBS.msi. Nếu bạn đã sử dụng giải pháp được đề xuất, bạn có thể loại bỏ hoặc kích hoạt ghi nhật ký sự thẻ và giữ thẻ supportRuntime .

Lưu ý: Bạn có thể cài đặt chuyên biệt RBS bằng cách sử dụng RBS.msi mới để áp dụng bản vá không áp dụng bản Cập Nhật.
Cách giải quyết khác
Để khắc phục sự cố này, thêm hình bổ sung sau tập tin cấu hình cùng với thẻ supportedRuntime . Các thẻ vô hiệu hóa khả năng ghi nhật ký để công cụ duy trì do ngoại lệ được ném trong quá trình khởi tạo nhà cung cấp kí nhập.
 <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>
Tình trạng
Microsoft đã xác nhận rằng đây là sự cố trong sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".

Cảnh báo: Bài viết này được dịch tự động

属性

文章 ID:2960310 - 上次审阅时间:11/10/2016 01:05:00 - 修订版本: 8.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 KbMtvi
反馈