首页 新闻 会员 周边

Enyim.Caching问题

0
悬赏园豆:50 [已关闭问题] 解决于 2013-10-22 16:21

错误信息:未能加载文件或程序集“Enyim.Caching”或它的某一个依赖项。未能验证强名称签名。此程序集可能已被篡改,或者已被延迟签名,但没有用正确的私钥进行完全签名。

[FileLoadException: 未能加载文件或程序集“Enyim.Caching, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cec98615db04012e”或它的某一个依赖项。未能验证强名称签名。此程序集可能已被篡改,或者已被延迟签名,但没有用正确的私钥进行完全签名。 (异常来自 HRESULT:0x80131045)]
多一块石头的主页 多一块石头 | 初学一级 | 园豆:131
提问于:2013-10-22 13:57
< >
分享
其他回答(1)
1

最新版已经是Enyim Memcached Client 2.12.0,详见:http://www.nuget.org/packages/Memcached/

解决方法:

在web.config中添加如下配置:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Enyim.Caching" publicKeyToken="cec98615db04012e" culture="neutral" />
      <bindingRedirect oldVersion="1.0.0.0-2.12.0.0" newVersion="2.12.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>
收获园豆:40
dudu | 园豆:31007 (高人七级) | 2013-10-22 14:07

dudu老大,服务器上不行啊,我是本地去掉签名编译源码得到的dll,可以在本地使用,但dll烤给同事使用就还是报那个错误,同事自己把签名去掉重新编译后,本地可以调试了,但在服务器上还是报这个错误。

支持(0) 反对(0) 多一块石头 | 园豆:131 (初学一级) | 2013-10-22 14:36

@多一块石头: 去掉签名把所有的关联的都给去掉。

支持(0) 反对(0) ````` | 园豆:14268 (专家六级) | 2013-10-22 15:10

@多一块石头: 

如果签名的话,只能用Enyim.Caching 1.0.0.0

支持(0) 反对(0) dudu | 园豆:31007 (高人七级) | 2013-10-22 15:16

@imfunny:指的是哪些?我都去掉也不行啊,而且每次把为程序集签名选项去掉,但再次打开依然是勾选上的,而且即使当时去掉了,编译出的dll,在引用信息里依然是强名称,签过名的。

支持(0) 反对(0) 多一块石头 | 园豆:131 (初学一级) | 2013-10-22 15:24

@dudu: 这个是什么意思?我编译后默认版本就是1.0.0.0。

支持(0) 反对(0) 多一块石头 | 园豆:131 (初学一级) | 2013-10-22 15:24

@多一块石头: 修改AssemblyInfo.cs没?就是VS属性中去掉?

支持(0) 反对(0) ````` | 园豆:14268 (专家六级) | 2013-10-22 15:26

@多一块石头: 

如果你是自己编译的,需要添加到GAC中,参考我写过的一篇博客:

从编译DotNetOpenAuth中学到的程序集强签名知识

支持(0) 反对(0) dudu | 园豆:31007 (高人七级) | 2013-10-22 15:29

@多一块石头: 

你遇到的问题与我这篇博客中遇到的问题是一样的

支持(0) 反对(0) dudu | 园豆:31007 (高人七级) | 2013-10-22 15:30

@imfunny: 

[assembly: AssemblyProduct("Enyim.Caching")]

[assembly: AssemblyCompany("enyim.com")]
[assembly: AssemblyCopyright("Copyright © enyim.com, Attila Kiskó 2007-2010")]

[assembly: AssemblyConfiguration("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

[assembly: ComVisible(false)]

[assembly: Guid("a8cd3f39-7731-4ee8-a7ce-444d540d4a4d")]

这是程序集的代码貌似没问题。

支持(0) 反对(0) 多一块石头 | 园豆:131 (初学一级) | 2013-10-22 15:46

@dudu: 试了一下,好像问题依然,也许我哪步错了,我再试试。

支持(0) 反对(0) 多一块石头 | 园豆:131 (初学一级) | 2013-10-22 15:47

@dudu: 恩,是一样的,我现在搞不明白的是,本地vs编译后,添加引用,运行都没有问题,本地IIS也通过,就是放到服务器后报这个问题。

支持(0) 反对(0) 多一块石头 | 园豆:131 (初学一级) | 2013-10-22 15:55

@多一块石头: 服务器上的GAC中有没有Enyim.Caching?

支持(0) 反对(0) dudu | 园豆:31007 (高人七级) | 2013-10-22 16:12

@dudu: 问题解决了,本地添加文件引用的话不需要添加GAC,服务器也不需要。要点是你上面提到的web.config添加runtime节,和程序签名,非常感谢。

支持(0) 反对(0) 多一块石头 | 园豆:131 (初学一级) | 2013-10-22 16:20

@imfunny:已解决, 非常感谢。

支持(0) 反对(0) 多一块石头 | 园豆:131 (初学一级) | 2013-10-22 16:21

@多一块石头: 能给一个具体的,可以运行的demo吗?我也碰到和你一样的问题了。

支持(0) 反对(0) mazhlo | 园豆:200 (初学一级) | 2013-11-22 10:37
1

今天也碰到一样的问题,解决方法是打开build/CommonProperties.targets文件,注释public_key.snk所在节点,编译引用即可。详见:http://www.mzwu.com/article.asp?id=3741

张远强 | 园豆:153 (初学一级) | 2014-03-21 18:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册