我正在尝试创建一个作为函数运行的SQL CLR。这必须依赖于RabbitMQ.Client.dll
。到目前为止,我已经下载了它并在我的SQL Server上创建了一个程序集,如下所示:
CREATE ASSEMBLY [RabbitMQ.Client]
FROM 'C:\Users\MyUser\Documents\RabbitMQ.Client.dll'
WITH PERMISSION_SET = SAFE
这样,我可以转到VS上的数据库项目并使用此类程序集提供的工具。我创建了一个应该像这样调用的函数:
SELECT dbo.RabbitEnqueue(3)
但是,运行它会返回一个异常:
Ms 6522,Level 16,State 1,Line 30
在执行用户定义的例程或聚合“RabbitEnqueue”期间发生.NET Framework错误:
System.IO.FileLoadException:无法加载文件或程序集 'RabbitMQ.Client,Version = 4.0.0.0,Culture = neutral, PublicKeyToken = 89e7d7c5feba84ce'或其依赖项之一。强大 名称验证失败。 (HRESULT异常:0x8013141A)System.Security.SecurityException:强名称验证失败。 (HRESULT异常:0x8013141A)
在UserDefinedFunctions.RabbitEnqueue(Int32 myId)。
根据RabbitMQ网站their assembly is strongly named:
客户端程序集名称很强。公钥令牌为89e7d7c5feba84ce,签名密钥的公共部分为
00240000048000009400000006020000002400005253413100040000010001008d20ec856aeeb8 c3153a77faa2d80e6e43b5db93224a20cc7ae384f65f142e89730e2ff0fcc5d578bbe96fa98a71 96c77329efdee4579b3814c0789e5a39b51df6edd75b602a33ceabdfcf19a3feb832f31d825416 8cd7ba5700dfbca301fbf8db614ba41ba18474de0a5f4c2d51c995bc3636c641c8cbe76f45717b fcb943b5。
我在这里缺少什么?
答案 0 :(得分:0)
我能够解决这个问题,我从nuget下载了程序集,事实证明我必须直接从他们的网站下载dll,结果证明这个名字很强。