zoukankan      html  css  js  c++  java
  • 解决WCF部署到IIS出现“证书必须具有能够进行密钥交换的私钥,该进程必须具有访问私钥的权限”

    访问WCF服务时,出现异常详细信息: System.Security.Cryptography.CryptographicException: 密钥集不存在。ArgumentException: 证书“CN=MyServerCert”必须具有能够进行密钥交换的私钥。该进程必须具有访问私钥的权限。这个问题是因为 WCF 所使用的帐户(NETWORK SERVICE/ASPNET)对证书私钥文件的读访问权限造成的。

    造成上面的错误主要是Network Service(Server)用户没有访问证书权限,要解决该错误, 只需要给相应的账号分配权限即可,这里IIS访问证书密钥的权限可以通过WinHttpCertCfg.exe来处理,只需要通过命令行执行该程序即可,如下所示。

    winhttpcertcfg -g -c LOCAL_MACHINEMy -s MyServerCert -a "NETWORK SERVICE" 

    运行命令后,在运行WCF服务,一切OK了

    其它解决办法可参照:WCF部署:让IIS有权限访问证书文件

    -------------------------------------------------------------------------------------------------------------------------------

    如果设置了访问权限,还出现上面的错误,那么您需要设置一下应用程序池,操作如下:

    分别进入Classic .NET AppPool 和 DefaultAppPool 高级设置,将进程模型标识设置为 NetworkService 

  • 相关阅读:
    hdu4535
    hdu4535
    hdu4503 概率
    hdu4503 概率
    hdu4499 搜索
    hdu4499 搜索
    hdu1146
    hdu1146
    Proj THUDBFuzz Paper Reading: Typestate-Guided Fuzzer for Discovering Use-after-Free Vulnerabilities
    Proj THUDBFuzz Paper Reading: Intriguer: Field-Level Constraint Solving for Hybrid Fuzzing
  • 原文地址:https://www.cnblogs.com/ShaYeBlog/p/4072086.html
Copyright © 2011-2022 走看看