none
RSA 密钥集不存在(CryptographicException) 怎么解决? RRS feed

  • 常规讨论

  • 异常消息: 密钥集不存在。
     (类型 CryptographicException)

    异常堆栈跟踪:    在 System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)
       在 System.Security.Cryptography.SafeProvHandle._FreeCSP(IntPtr pProvCtx)
       在 System.Security.Cryptography.SafeProvHandle.ReleaseHandle()
       在 System.Runtime.InteropServices.SafeHandle.InternalDispose()
       在 System.Runtime.InteropServices.SafeHandle.Dispose(Boolean disposing)
       在 System.Runtime.InteropServices.SafeHandle.Dispose()
       在 System.Security.Cryptography.RSACryptoServiceProvider.Dispose(Boolean disposing)
       在 System.Security.Cryptography.AsymmetricAlgorithm.System.IDisposable.Dispose()
       在 Microsoft.TeamFoundation.VersionControl.Server.Proxy.RequestSignatures.GenerateNewPrivateKey(Int32 keyLength)
       在 Microsoft.TeamFoundation.VersionControl.Server.AdministrationManager.GenerateRepositoryKey(Int32 keyLength)
       在 Microsoft.TeamFoundation.VersionControl.Server.Global.Initialize()


    MSDN查到解决方案:

    http://msdn2.microsoft.com/en-us/library/ms400681(VS.80).aspx

    To correct this error, confirm that the Proxy Service account has the Full Control permission set to Allow on the RSA Machine Key folder in the Documents and Settings folder (for example, C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA).

     

    这种方法的确能解决,但是修改权限的发放似乎不妥,有没有其他解决方法呢?

    2008年12月22日 8:15

全部回复

  • 楼主能否把你的问题描述下,或者把你的问题代码post上来,否则就几个异常信息,很有难度。

    或者你访问下面的连接。
    http://blogs.msdn.com/tess/archive/2007/10/31/asp-net-crash-system-security-cryptography-cryptographicexception.aspx

    http://blogs.msdn.com/shawnfa/archive/2006/09/21/764977.aspx
    2008年12月24日 3:03
  • 这个异常是我用了RSA加密算法后,把它部署在网站上,就会时不时地弹出来。

     

    Code Snippet

    CspParameters cp = new CspParameters();
    cp.Flags = CspProviderFlags.UseMachineKeyStore;
    cp.KeyContainerName = "SSO_PRIVATE_KEY_1";
    RSACryptoServiceProvider csp = new RSACryptoServiceProvider(cp);
                                      

     

     

    2008年12月29日 10:00