CLR トリガーを使用して WCF サーバーに接続し、DB の変更について通知するシステムを作成しました。SQL Server 2008 R2 で問題なく動作します。現在、SQL Server 2012 に移行しようとしています。WCF を使用するには、他のアセンブリに沿って SMDiagnostics.dll アセンブリをロードする必要があります。db で clr が有効になっていることを確認し、trustworthy を「オン」に設定し、WCF デバッグを無効にし、SQL サーバーがローカル システム アカウントで実行されていることを確認したため、権限に問題はありません。今私の問題は、次のコマンドを実行すると
IF NOT EXISTS (SELECT * FROM sys.assemblies asms WHERE asms.name = N'SMdiagnostics')
create assembly [SMdiagnostics]
from 'C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\SMdiagnostics.dll'
with permission_set = unsafe
go
次のエラーが表示されます
警告: Microsoft .NET Framework アセンブリ 'smdiagnostics, version=3.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089, processorarchitecture=msil.' 登録しようとしているシステムは、SQL Server ホスト環境で完全にテストされておらず、サポートされていません。今後、このアセンブリまたは .NET Framework をアップグレードまたはサービスすると、CLR 統合ルーチンが機能しなくなる可能性があります。詳細については、SQL Server Books Online を参照してください。メッセージ 6586、レベル 16、状態 1、行 2 アセンブリ 'SMdiagnostics' は、既存のポリシーによって使用されないため、インストールできませんでした。
指定したパスに SMdiagnostics.dll が存在します。SQL Server 2012 または GAC で何らかのポリシーを理解しているため、SMdiagnostics に関するポリシーが見つかりません。それを解決する方法はありますか?ありがとう。