方案:

  • 客户端在LAN上调用WebServiceA。 WebService A在具有“网络服务”标识的应用程序池下运行。
  • WebService A做一些工作,准备调用WebServiceB。
  • WebService B需要客户端证书(* .cer)和SSL。
  • WebService A在专用的Windows 2003服务器上。
  • 一切都应在开发环境中正常进行(但具有管理员权限的开发人员始终在本地登录(不足为奇!)。
  • 证书存储在磁盘上,位置为C:\MyCertificates\
  • 此代码段已在运行时成功在Dev中应用了证书:myWebService.ClientCertificates.Add(new X509Certificate.CreateFromCertFile(certPath));

  • 问题:
    WebService A正在调用WebService B,返回的异常是:



    这实际上意味着证书没有在请求中发送到WebServiceB。

    我假设在浏览器中安装此证书不是解决方案。浏览器设置通常是按用户设置的,我需要将证书提供给运行Web服务的凭据的用户。 (例如,网络服务,系统或IIS AppPool设置中的任何内容)。

    问题:如何授予对位于网络服务或其他非用户帐户的指定目录位置的证书的访问或关联?

    最佳答案

    此Microsoft知识库文章可能有用:



    您的Web服务“A”将有效地是ASP.NET应用程序,如本文所述,该应用程序将调用Web服务。

    关于web-services - 为IIS应用程序池帐户安装客户端证书,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1034415/

    10-13 01:19