如何禁用所有.Net程序集的强名称验证?

时间:2014-02-13 19:32:41

标签: .net config verification strongname

如何通过config .net框架或IIS或项目配置禁用系统中所有.Net程序集的.Net强名称验证?

http://nvea.host56.com/up/726daf2c9ee0.png (点击查看大图)

4 个答案:

答案 0 :(得分:11)

尝试在 regestry 中添加:

OS x32:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\*,af24b530b87e22f1]

OS x64:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\*,af24b530b87e22f1]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\StrongName\Verification\*,af24b530b87e22f1]

并将其添加到 Web.config

<system.web>
   <hostingEnvironment shadowCopyBinAssemblies="false" />
</system.web>

答案 1 :(得分:8)

要禁用计算机上所有程序集的强名称验证,您可以运行:

select st_distance_sphere(POINT(-73.9949,40.7501), POINT( -73.9961,40.7542)) 

来自VS201的开发人员命令提示符*

答案 2 :(得分:4)

以下条目将起作用:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\*,af24b530b87e22f1]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\StrongName\Verification\*,af24b530b87e22f1]

答案 3 :(得分:3)

这是我收到的例外情况:

Error Type: System.IO.FileLoadException
Error Message: Could not load file or assembly 'MyAssemblyName, Version=5.1.0.0,  Culture=neutral, PublicKeyToken=30b439e30eee46b4' or one of its dependencies.
Strong name  validation failed. (Exception from HRESULT: 0x8013141A)

这是一个解决方案,我可以在完全签名的服务中测试特定程序集时禁用强名称验证:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\MyAssemblyName,30b439e30eee46b4]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\StrongName\Verification\MyAssemblyName,30b439e30eee46b4]

您必须在注册表中创建这些新密钥,密钥下面没有值。您可以将这两行复制到.reg文件中,更改程序集名称及其guid,然后双击它以合并到注册表中。

注意:程序集名称是没有.dll扩展名的文件名,与异常中显示的完全相同。

然后重新启动您的应用/服务。

我认为上面用*而不是汇编名称的答案也应该有用。