私は委託中のMS SQL Server 2008 R2インストールを実行しています。SQL CLR - 安全/ unsafeおよびメモリの使用に関する懸念
私は、オンデマンドでテーブルの列を暗号化および復号化するアプリケーションを作成しました。これはうまくいきます。このアプリケーションは、任意のテーブルの行を処理するためにDataTableオブジェクトを使用します。 SQLにこれを統合するために、私は、DataTableオブジェクトの使用を満たすために、まず、次のアセンブリを作成することを強制してい
:
create assembly [system.data.datasetextensions]
from 'C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Data.DataSetExtensions.dll'
with permission_set = unsafe
問題ありません。もちろん、これは、読み取り専用とマークされていない静的フィールドを含んでいるため安全ではないと宣言しなければならないため、スレッドセーフではないため、実行から実行まで予測できません。
しかし、私はメインのCLR DLLを安全であると宣言したいと思います(明らかに署名して、GACなどを入れます)。しかし、私はコードを実行すると、私は主なCLR DLLを安全でないと宣言すれば、その醜いヘッドを上げない "範囲外のインデックス"という厄介な "インデックスを取得する"エラーが発生します。私は安全なアセンブリのためのいいえではない安全でないアセンブリにアクセスしようとしているという事実によると思いますか?
2番目のことは、このメインのCLR DLLが安全でないとして実行されていて、CLRがSQL Server/.NetでクリーンアップされていないというCLRの呼び出しが「期限切れです。私はそれを実行するとメモリ消費量が増えますが、メモリは決して解放されないようです。メモリが解放されるためにApp Domainがアンロードされるまで待つことは本当にありません!
おかげでみんな..