Object already exists exception in RSACryptoServiceProvider
===

First let me start by saying I'm sorry if I posted this question in the wrong place.  I saw the entry at http://stackoverflow.com/questions/4763628/object-already-exists-in-rsacryptoserviceprovider.  I tried the solutions offered there.  But, they did not solve my issue.  Also, I didn't see an option to re-ask the question.

I have almost the same issue.  I have a class that uses RSACryptoServiceProvider that runs in two projects on the same machine and under the same account.  Both projects live in the same solution and share the same encryption code.  One project, the server, is a Windows service and the other, the client, is a Windows application.  They use the RSACryptoServiceProvider to talk to each other over a named pipe using asymetric encryption. I started out by just having the server run in another Windows form within the same application as the client.  Everything ran fine.  Then, I moved the server to a Windows service.  

The Windows service starts up fine.  It seems to be able to create it's instance of the RSACryptoServiceProvider fine.  But, when the client, which runs in the Windows application, starts up it gets a runtime error when it tries to create it.  Here is the code that runs in both projects.


    rule = New CryptoKeyAccessRule("everyone", CryptoKeyRights.FullControl, AccessControlType.Allow)
    csp = New CspParameters
    csp.KeyContainerName = _KeyContainerName
    csp.Flags = CspProviderFlags.UseMachineKeyStore
    csp.CryptoKeySecurity = New CryptoKeySecurity()
    csp.CryptoKeySecurity.SetAccessRule(rule)

    //Object already exists exception happens here
    rsa = New RSACryptoServiceProvider(_KeySize, csp)

As you can see, I have the code that sets the access rule as mentioned in the other post on this subject.  Unfortunately, this did not solve my issue.  Is there anything else that needs to change?

Thanks in advance,

Mike