Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法在IIS中使用第三方WCF服务创建SSL/TLS安全通道_C#_Wcf_X509certificate_X509 - Fatal编程技术网

C# 无法在IIS中使用第三方WCF服务创建SSL/TLS安全通道

C# 无法在IIS中使用第三方WCF服务创建SSL/TLS安全通道,c#,wcf,x509certificate,x509,C#,Wcf,X509certificate,X509,我正在尝试使用第三方WCF服务,该服务要求在客户端配置X.509证书。我得到了一个.p12文件和一个密码短语。我在本地计算机上安装了它。我在web表单应用程序中配置了存储名称(在personal store中安装时为my,在TCA中安装时为Root)。当我试图发出请求时,由于上述错误而被中止。这已经存在了 <security mode="Transport"> <transport clientCredentialType="Certificate" /> <

我正在尝试使用第三方WCF服务,该服务要求在客户端配置X.509证书。我得到了一个.p12文件和一个密码短语。我在本地计算机上安装了它。我在web表单应用程序中配置了存储名称(在personal store中安装时为my,在TCA中安装时为Root)。当我试图发出请求时,由于上述错误而被中止。这已经存在了

<security mode="Transport">
    <transport clientCredentialType="Certificate" />
</security>

我应该在我的web forms应用程序所在的IIS中执行任何额外操作,还是应该向第三方请求更多文件?是否有任何在线步骤描述客户端在IIS for X.509 cert auth中需要执行的操作

当我通过单击Google Chrome使用Visual Studio Internal Server时,上面的设置非常有效。但错误是当它在IIS中发布时

更新:
我做到了,它在windows server 2008中正常工作。在Windows7中,它不能正常工作。在windows 7中,甚至内部visual studio服务器也无法正常工作以发出此请求

我认为,您需要将客户端证书安装到
CurrentUser\My
证书存储中,而不是
LocalMachine
。标准用户无权访问本地计算机存储中安装的证书

更新

当我通过单击Google Chrome使用Visual Studio Internal Server时,上面的设置非常有效。但错误是当它在IIS中发布时


IIS中的网站在应用程序池安全上下文下运行。您必须将证书安装到应用程序池使用的帐户的个人存储中。当您在Visual Studio调试器中运行web应用程序时,它在您的用户帐户下运行,并且您的用户帐户显然在个人存储中具有此证书。该错误表明证书未安装在应用程序池的个人存储中。

因此问题在于通道不是TLS1.2。将其设置为与其他帖子中的任何其他答案一样的代码表明会起作用。如果这不是一个选项,您必须确保通过在reg edit中编辑来使用TLS1.2发出请求


应该有助于在注册表编辑中进行设置。

我目前拥有的功能在Windows Server 2008中运行良好。但不是在Windows7中。可能需要补充一点。我将尝试使用CurrentUser并通知您。
无法使用以下搜索条件找到X.509证书:StoreName“My”、StoreLocation“CurrentUser”、FindType“FindByIssuerName”、FindValue“ws.docvelocity4.net”。
我收到此错误。我确保它存在于当前用户和IIS中。还发现问题的原因不是操作系统,而是IIS vs内部服务器。错误消息表明您确实需要将证书安装到当前用户存储。我想您错过了我提到的部分,我确保它安装在何处?我只看到这个:
我在本地计算机上安装了它
。另外,请确保证书是否符合搜索条件。