gpt4 book ai didi

.net - 无法获取StrongNameKeyPair的公钥

转载 作者:行者123 更新时间:2023-12-04 13:43:48 29 4
gpt4 key购买 nike

我已经将开发移植到另一台计算机,并且如果我运行项目,则将出现以下异常:

Unable to obtain public key for StrongNameKeyPair.

HibernateException: Creating a proxy instance failed


在原始计算机上,它可以正常运行而不会出现问题。
我在Google上发现某些加密存在问题,因此我应该尝试“sn -m n”,因为我不知道怎么做。 sn.exe在更多文件夹中,我尝试从命令行运行一些命令,但它写道:

Failed to open registry key -- Unable to format error message 00000005


我不知道问题是否出在NHibernate上,还有更多类似的鞭打对话框,并且它仅在一种情况下抛出此异常。
有一部分代码异常抛出异常:
public IList<DTO> GetAll(GridSortOptions sortOptions, DTOListModel<DTO> listModel)
{
return GetAllCriteria(sortOptions, CreateCriteria(), listModel).List<DTO>();
}
解决方案中没有一个项目使用签名。
我不明白此错误的确切含义以及我应该寻找的内容。

最佳答案

NHibernate正在动态创建.NET程序集(动态代理)并需要对其进行签名。默认情况下,Windows操作系统将加密 key 存储配置为计算机级别,并将 key 存储在C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys中。用户很可能可以在此文件夹中创建(例如)文本文件,但不能删除它,因为您没有完全控制权。

您的选择是

  • 通过修改可能不建议使用的权限来完全控制C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys。
  • 通过运行Windows SDK中的“sn.exe -m n”,将加密 key 存储更改为用户级别。 http://msdn.microsoft.com/en-us/library/k5b5tt23(v=VS.90).aspx这会将加密 key 存储区放在您的用户本地配置文件下,您应该始终对其进行完全控制。

  • 在线上有几篇文章描述了类似的问题。例如,请参见 http://support.targetprocess.com/Default.aspx?g=posts&t=305

    关于.net - 无法获取StrongNameKeyPair的公钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5659740/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com