我创建了使用 CLR 触发器连接到 WCF 服务器并通知它有关 DB 更改的系统。它在 SQL Server 2008 R2 上运行正常。现在我尝试在 SQL Server 2012 上迁移。要使用 WCF,我需要加载 SMDiagnostics.dll 程序集以及其他程序集。我检查了 db 中是否启用了 clr,并将 trustworthy 设置为“on”,我禁用了 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 联机丛书。消息 6586,级别 16,状态 1,行 2 组件“SMdiagnostics”无法安装,因为现有策略将阻止使用它。
SMdiagnostics.dll 存在于指定路径。据我了解它在 SQL Server 2012 或 GAC 中的某种政策,但是我找不到任何关于 SMdiagnostics 的政策。任何想法如何解决它?谢谢。