相关疑难解决方法(0)

CryptographicException'Keyset不存在',但仅限于WCF

我有一些代码调用使用X.509认证保护的第三方Web服务.

如果我直接调用代码(使用单元测试),它可以正常工作.

部署后,将通过WCF服务调用此代码.我添加了第二个调用WCF服务的单元测试,但是当我在第三方Web服务上调用方法时,这个CryptographicException消息失败了"Keyset does not exist".

我认为这是因为我的WCF服务将尝试使用不同的用户自己调用第三方Web服务.

任何人都可以解决这个问题吗?

.net wcf x509

152
推荐指数
7
解决办法
18万
查看次数

X509Certificate - 密钥集不存在

我有一个使用WCF 的WinForms应用程序,并作为参数传递给函数证书:

mySvcClient.SendDocument(cert.Export(X509ContentType.SerializedCert, "password"));
...
Run Code Online (Sandbox Code Playgroud)

在WCF服务中,我从字节数组重新创建了证书:

public void SendDocument (byte[] binaryCert)
{   
     X509Certificate2 cert = new X509Certificate2(binaryCert, "password");
...
Run Code Online (Sandbox Code Playgroud)

但是当使用证书签署xml时,我收到错误"Keyset不存在":

if (cert.HasPrivateKey) // WORKS!!!
{   
    signedXml.SigningKey = cert.PrivateKey; // THROW "keyset does not exist" EXCEPTION
...
Run Code Online (Sandbox Code Playgroud)

在我的电脑中,该应用程序100%工作!但是在WebServer中,我收到了这个错误!

问题是:即使X509Certificate2从一个字节数组重新创建,我需要一些特殊权限才能访问私钥?

谢谢!

c# wcf x509certificate

31
推荐指数
5
解决办法
5万
查看次数

标签 统计

wcf ×2

.net ×1

c# ×1

x509 ×1

x509certificate ×1