.NET Framework 4.0 を SQL Server に関連する構成ファイルで RBS を管理するときにアクセス違反を修正します。

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:2960310
現象
Microsoft SharePoint 2013 のリモート blob を格納すると、.NET Framework 4.0 の実行時のカスタム リモート BLOB ストレージ (RBS) プロバイダーを使用するいると仮定します。Microsoft.Data.SqlRemoteBlobs.Maintainer.exe を内部的に呼び出すガベージのクリーンアップを実行しようとすると、ガベージ コレクション中に次のエラー メッセージが表示されます。
メンテナのタスクを開始しています。
ガベージ コレクションを開始しています。
参照スキャンを開始しています。
時刻>: エラー: 0:::AssemblyLoad::: の拡張機能ファイル xxxx を読み取り中にエラーが発生しました。RemoteBlobStoreProvider.dll。
時刻>: エラー: 0:::AssemblyLoad::: System.BadImageFormatException: このアセンブリが、現在読み込まれているランタイムより新しいランタイムによってビルドされたため、読み込めません。(HRESULT からの例外: 0x8013101B)
時刻>: エラー: 0:::AssemblyLoad::: System.Reflection.Assembly.nLoadFile (文字列のパス、証拠の証拠) で
時刻>: エラー: 0:::AssemblyLoad::: System.Reflection.Assembly.LoadFile (文字列のパス) に時刻>: エラー: 0:::AssemblyLoad::: Microsoft.Data.SqlRemoteBlobs.ProviderClass.Initialize() で

メンテナのツールは、.NET Framework 2.0 ランタイムを使用してコンパイルし、blob とガベージ コレクションの列挙型の.NET Framework 4.0 に基づいているアセンブリを読み込むことができません。任意の.NET Framework アプリケーションのアプリケーションの構成ファイルを使用して.NET Framework の以降のバージョンを使用するsupportedRuntimeタグを追加できます。メンテナのコンポーネントの構成ファイルでは、Microsoft.Data.SqlRemoteBlobs.MaintainerConfig.xml、次の例のようにします。
<startup>            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
ガベージのクリーンアップを実行しようとすると、Microsoft.Data.SqlRemoteBlobs.Maintainer.exe が発生するか、アクセス違反の例外として次のようにします。
System.AccessViolationException: 保護されているメモリに読み取りまたは書き込み操作を行おうとしました。これは多くの場合、他のメモリが破損していることを示します。
System.Text.StringBuilder.AppendFormat (したりプロバイダー、文字列の書式設定、オブジェクトの引数) に
Microsoft.Data.SqlRemoteBlobs.InformationUtilities.InformationDetails() で
Microsoft.Data.BlobStores.LogProvider.CreateHeaderInformation() で
Microsoft.Data.BlobStores.LogProvider.Initialize (LogLevel logLevel) で
Microsoft.Data.BlobStores.DebugPrint.InitializeProviders() で
Microsoft.Data.BlobStores.DebugPrint.Initialize (ブール値 initializeProviders) で
Microsoft.Data.BlobStores.DebugPrint.WriteLine (入力操作、LogLevel レベル、int32 型の blobStoreId、例外の例外、メッセージ文字列、オブジェクトの引数) に
Microsoft.Data.SqlRemoteBlobs.Maintainer.Maintainer.MainInternal() Microsoft.Data.SqlRemoteBlobs.Maintainer.Maintainer.Main (引数の文字列) であります。
原因
最初の例外は、.NET Framework 2.0 を使用して管理者ツールをコンパイルするために発生します。.NET Framework 4.0 に基づいているアセンブリを読み込むことができません。Microsoft.Data.SqlRemoteBlobs.Maintainer.exe のログ プロバイダーを初期化しようとするとき、アクセス違反の例外が発生します。
解決方法
この問題の修正プログラムは、RBS.msi の最新の機能パックのダウンロードに使用できます。お勧めする回避策を使用する場合は、削除したり、ログに関連するを有効にするタグし、 supportRuntimeタグを保持します。

<b>修正プログラムを適用して更新プログラムを適用せずに新しい RBS.msi を使用して RBS を再インストールすることができます。
回避策
この問題を回避するには、 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>
状況
マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。

警告: この記事は自動翻訳されています

プロパティ

文書番号:2960310 - 最終更新日: 11/09/2016 21:17:00 - リビジョン: 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 KbMtja
フィードバック