我需要在web.config文件中重新创建一个提供程序,如下所示:
<membership defaultProvider="AspNetSqlMemProvider">
<providers>
<clear/>
<add connectionStringName="TRAQDBConnectionString" applicationName="TRAQ" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0"
name="AspNetSqlMemProvider"
type="System.Web.Security.SqlMembershipProvider, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"
/>
</providers>
</membership>
Run Code Online (Sandbox Code Playgroud)
但是,我收到运行时错误,说无法加载此程序集,我认为这是因为我有错误的PublicKeyToken.如何查找我的程序集的PublicKeyToken?
或者,我是否完全采用错误的方式?
我们有一个asp.net 4.0项目,它使用了几个依赖于log4net 1.2.10.0版本的框架.今天我尝试包含一个依赖于log4net版本1.2.11.0的新框架,从那时起我就被困住了:
log4net 1.2.10.0有publickeytoken = 1b44e1d426115821
log4net 1.2.11.0有publickeytoken = 669e0ddf0bb1aa2a
由于这些不同,我不能通过web.config中的运行时元素使用程序集重定向(使所有框架使用相同版本的log4net)或代码库(仅使新框架使用版本1.2.11.0).
我有什么选择?
(以及为什么哔哔声会让log4net不断更改版本之间的publickeytokens,因为据我所知,丢失的密钥是在1.2.9.0和1.2.10.0版本之间切换的原因,他们是否再次丢失密钥?我会自愿提供我的Dropbox如果他们需要它,以保证安全......)
编辑:好的,所以log4net的人显然认为用两个密钥发布是一个好主意,但这意味着你使用的每个框架需要就他们喜欢的两种风格中的哪一种达成一致,或者那些框架不能正常工作在同一个应用程序域中.我是唯一发现这个可怕想法的人吗?如果每个人都这样做,那么一切都会崩溃,对吧?
Edit2:正如我所说,我没有在我的业务代码中使用log4net,但是我使用了几个依赖于1.2.10.0的框架,当我尝试使用依赖于1.2.11.0的新框架时出现问题(新密钥) ),所以Stefans的回答并不适用,因为新的框架会期望新的密钥,而不是旧的密钥
如果公钥标记在旧版本上为空并且在较新版本上设置,是否可以在引用的程序集的不同版本之间执行程序集绑定重定向?
例如,我有两个组件......
System.Web.Mvc,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null
和
System.Web.Mvc,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35
以下程序集绑定重定向是否应该在Asp.Net web.config中工作...
System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Run Code Online (Sandbox Code Playgroud) 我最近去将一个asp.net解决方案部署到Win2003服务器上。
我收到的错误消息涉及据称丢失的程序集。
事实证明,我的开发计算机(XP SP3 32 位)上的 publickeytokens 是大写的,而服务器上的相同文件(目前无法检查它是 32 位还是 64 位)的 publickeytokens 是小写的。
(我使用 win explorer 转到 c:\windows\ assembly )
修改 web.config 以使 publickeytoken 与服务器上的程序集的 publickeytoken 相匹配,这样就可以解决问题并且应用程序可以正常工作。
我尝试研究差异的原因,但没有发现任何东西。
任何人都可以帮助我或为我指明正确的方向,为什么不同机器上的公钥令牌会出现不同的情况?
非常感谢
尼尔
我刚刚更新了Xamarin Studio的最新版本(Xamarin.Android版本:4.6.4(商业版)),我在更新后收到了很多警告..:
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets:警告:引用'mscorlib,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = xxxxx'未解析(TrackandTrace. Droid的)
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets:警告:参考'Mono.Android,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = xxxx'未解决( TrackandTrace.Droid)
我已经尝试删除引用并重新添加它没有任何影响.
更新: 即使我创建一个新项目,我从一开始就收到2个错误..这些错误使得无法构建android项目.