SQL Server上的程序集运行失败,强名称验证失败异常

时间:2016-08-26 15:10:11

标签: .net sql-server rabbitmq

我正在尝试创建一个作为函数运行的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。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

我能够解决这个问题,我从nuget下载了程序集,事实证明我必须直接从他们的网站下载dll,结果证明这个名字很强。