none
wcf 必须具有能够进行密钥交换的私钥 (救命) RRS feed

  • 问题

  • wcf配置了证书,vs2008中调试没有问题,发布到iis后访问wcf端就回出现
    必须具有能够进行密钥交换的私钥
    具体错误如下:

    密钥集不存在。

    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

    异常详细信息: System.Security.Cryptography.CryptographicException: 密钥集不存在。


    源错误:

    执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

    堆栈跟踪:

    [CryptographicException: 密钥集不存在。 ] System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer) +369 System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle) +151 System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair() +85 System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 dwKeySize, CspParameters parameters, Boolean useDefaultKeySize) +280 System.Security.Cryptography.X509Certificates.X509Certificate2.get_PrivateKey() +468 System.ServiceModel.Security.SecurityUtils.EnsureCertificateCanDoKeyExchange(X509Certificate2 certificate) +85 [ArgumentException: 证书“CN=iLogicServerCert”必须具有能够进行密钥交换的私钥。该进程必须具有访问私钥的权限。] 
    。。。
    [ServiceActivationException: 由于编译过程中出现异常,无法激活服务“/service.svc”。异常消息为: 证书“CN=iLogicServerCert”必须具有能够进行密钥交换的私钥。该进程必须具有访问私钥的权限。。]
       System.ServiceModel.AsyncResult.End(IAsyncResult result) +15625648
       System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +15545689
       System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context, Boolean flowContext) +265
       System.ServiceModel.Activation.HttpModule.ProcessRequest(Object sender, EventArgs e) +227
       System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +171




    然后搜索了一下各位大虾的文章,也不得其解
    iis7里面设置了 身份验证-asp.net模拟 为启用,结果出现如下错误:

    错误摘要

    HTTP 错误 500.24 - Internal Server Error

    检测到在集成的托管管道模式下不适用的 ASP.NET 设置。

    详细错误信息
    模块 ConfigurationValidationModule
    通知 BeginRequest
    处理程序 svc-Integrated
    错误代码 0x80070032
    请求的 URL http://localhost:98/service.svc
    物理路径 E:\Web\test98\service.svc
    登录方法 尚未确定
    登录用户 尚未确定
    最可能的原因:
    • system.web/identity@impersonate 设置为 true。
    可尝试的操作:


    有没有大虾帮忙解决下?
    2009年2月13日 8:28

答案

全部回复