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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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# WCF客户端证书身份验证,服务的SSL设置';SSLRequiremert&x27;与IIS';Ssl、SslNegotiateCert';_C#_Wcf_Iis_Ssl - Fatal编程技术网

C# WCF客户端证书身份验证,服务的SSL设置';SSLRequiremert&x27;与IIS';Ssl、SslNegotiateCert';

C# WCF客户端证书身份验证,服务的SSL设置';SSLRequiremert&x27;与IIS';Ssl、SslNegotiateCert';,c#,wcf,iis,ssl,C#,Wcf,Iis,Ssl,我有一个网站,将从一些客户端调用,这些客户端将使用客户端证书进行身份验证,而其他客户端则不会,因此我必须将客户端证书的iis设置设置为允许。这在windows 7 professional上运行良好,但是当我尝试在windows 7的虚拟服务器安装程序上运行此设置时,会出现以下错误 服务“SslRequireCert”的SSL设置与IIS“SSL,SslNegotiateCert”的设置不匹配 两个环境之间的所有iis设置似乎都相同 Jeremy这可能是由于IIS设置与WCF配置不匹配造成的

我有一个网站,将从一些客户端调用,这些客户端将使用客户端证书进行身份验证,而其他客户端则不会,因此我必须将客户端证书的iis设置设置为允许。这在windows 7 professional上运行良好,但是当我尝试在windows 7的虚拟服务器安装程序上运行此设置时,会出现以下错误

服务“SslRequireCert”的SSL设置与IIS“SSL,SslNegotiateCert”的设置不匹配

两个环境之间的所有iis设置似乎都相同


Jeremy

这可能是由于IIS设置与WCF配置不匹配造成的

    <binding name="TransportWithCertificate">
      <security mode="Transport">
        <transport clientCredentialType="Certificate" />
      </security>
    </binding>

错误消息非常明确。它表示“SSLRequireCert”或clientCredentialType=“Certificate”与“Ssl、SslNegotiateCert”或客户端证书的IIS设置不匹配:接受。要在IIS中修复此问题,您需要ClientCertificates:Require

在我的例子中,Server2008R2/IIS7.5的行为与Windows7/IIS7.5和Windows8.1/IIS8.5不同。在这两个桌面操作系统版本中,我都可以使用requiressl/客户端证书:Accept运行应用程序


但在Server 2008 R2/IIS 7.5上,页面不会加载错误SSL设置,因为服务“SslRequireCert”的SSL设置与IIS的SSL设置不匹配,SslNegotiateCert'更改为客户端证书:Require解决了此问题。

我在调试需要客户端证书的WCF服务时遇到此错误。它在Web.config中具有以下设置:

<bindings>
  <basicHttpsBinding>
    <binding name="basicHttps" maxReceivedMessageSize="10485760">
      <readerQuotas maxStringContentLength="7340320" maxArrayLength="2147483647"/>
      <security mode="Transport">
        <transport clientCredentialType="Certificate"/>
      </security>
    </binding>
  </basicHttpsBinding>
</bindings>

这使我在从VisualStudio调试时出错。注释“安全”节点后,此错误消失:

<bindings>
  <basicHttpsBinding>
    <binding name="basicHttps" maxReceivedMessageSize="10485760">
      <readerQuotas maxStringContentLength="7340320" maxArrayLength="2147483647"/>
      <!--<security mode="Transport">
        <transport clientCredentialType="Certificate"/>
      </security>-->
    </binding>
  </basicHttpsBinding>
</bindings>


请显示环境的设置同一问题的答案是否没有帮助?-它们是相同的,没有变化,似乎是一个iis问题。我也尝试过对mex端点进行注释,但这并没有解决我的问题。