CLRトリガーを使用してWCFサーバーに接続し、DBの変更について通知するシステムを作成しました。 SQL Server 2008 R2で正常に実行されます。 これでSQL Server 2012で移行しようとしています。 WCFを使用するには、他に沿ってSMDiagnostics.dllアセンブリをロードする必要があります。 IVEはdbでclrが有効になっていることを確認し、信頼できる値を "on"に設定しました.WCFデバッグでは、SQLサーバーがローカルシステムアカウントで実行されるため、アクセス権に問題はありません。 今私の問題は、私は、コマンドWCFのCLRトリガーを作成するMSSQL 2012が失敗する
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
次実行したときに、私は
Warning: The Microsoft .NET Framework assembly 'smdiagnostics, version=3.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089, processorarchitecture=msil.' you are registering is not fully tested in the SQL Server hosted environment and is not supported. In the future, if you upgrade or service this assembly or the .NET Framework, your CLR integration routine may stop working. Please refer SQL Server Books Online for more details. Msg 6586, Level 16, State 1, Line 2 Assembly 'SMdiagnostics' could not be installed because existing policy would keep it from being used.
SMdiagnostics.dllは、指定されたパスに存在するエラー、次受けるということです。 私はSQLサーバ2012またはGACの何らかのポリシーを理解していますが、SMdiagnosticsについてのポリシーは見つけられません。 どのようにそれを解決するためのアイデア?おかげさまで
MSDNフォーラムのメンバーは、.netバージョン3.0からアセンブリ4.0またはそれ以上をサポートするSQL Server 2012にアセンブリを読み込もうとしていると指摘しました。これはいくつかの問題を解決しましたが、CLRトリガーからWCFを使用する必要があるアセンブリをロードできません。 http://blogs.msdn.com/b/dohollan/archive/2012/04/20/sql-server-2012-sqlclr-net-framework-version.aspx – AlexS