C# 带有cert auth的WCF服务客户端在调试时工作,但不处于活动状态

C# 带有cert auth的WCF服务客户端在调试时工作,但不处于活动状态,c#,asp.net,wcf,web-config,certificate,C#,Asp.net,Wcf,Web Config,Certificate,Im使用经过证书验证的WCF服务。我在VS调试模式下工作,但在发布和运行时它将无法工作 证书存储在CurrentUser/TrustedPeople中。 这是我的配置行为部分: <behavior name="LoadClientCert"> <clientCredentials> <clientCertificate findValue="CN=Certificate1" storeLocat

Im使用经过证书验证的WCF服务。我在VS调试模式下工作,但在发布和运行时它将无法工作

证书存储在CurrentUser/TrustedPeople中。 这是我的配置行为部分:

<behavior name="LoadClientCert">
    <clientCredentials>
        <clientCertificate findValue="CN=Certificate1"
                        storeLocation="CurrentUser" storeName="TrustedPeople"
                        x509FindType="FindBySubjectDistinguishedName" />
        <serviceCertificate>
          <defaultCertificate findValue="CN=Certificate2"
                        storeLocation="CurrentUser" storeName="TrustedPeople"
                        x509FindType="FindBySubjectDistinguishedName" />
          <authentication certificateValidationMode="None"
                        revocationMode="NoCheck" />
        </serviceCertificate>
      </clientCredentials>
</behavior>

错误消息:请求错误 服务器在处理请求时遇到错误。有关详细信息,请参阅服务器日志

我猜IIS用户没有使用证书的权限。但这只是猜测

我在哪里可以找到服务器日志?我尝试了事件查看器,但没有找到任何内容。我还不走运地将其添加到配置中(尝试解决方案后为空):



有什么建议吗?

如果您使用的是2 was SSL,即使用SSL保护传输通道,并使用SSL验证您的客户端,则应按如下方式放置证书:

对于服务器证书(.pfx文件):

在本地计算机个人文件夹中安装证书

对于客户端证书:

在服务器计算机(.cer文件)上: 在本地计算机-->受信任人员存储中安装客户端证书

在客户端计算机上(.pfx文件): 在本地用户-->个人存储中安装客户端证书

此外,如果服务器证书是自签名的,请确保在调用服务方法之前在客户端使用以下代码:

System.Net.ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, error) =>
                                                                                 {
                                                                                     return true;
                                                                                 };
更新:


您是否使用自签名证书?是的,它们是自签名的证书的位置是否重要?只要在配置中指定了,在哪里查找?这项服务使用常规服务http://Yes 证书需要放在适当的存储区。但是如果我不使用ssl,我应该把它们放在哪里?我已经指定了安装证书的存储区。如果您不想使用SSL,那么只需在您的配置中注释serviceCertificate元素和clientCertificate元素,这将禁用remove 2-way SSLI‘我们让它在本地主机IIS上工作,但当我在live server上发布它时,它仍然会给我相同的错误。我以前遇到的问题是,CSCertificates位于错误的存储中,我必须向证书授予apppool权限。因此,我在我的web服务器上得到的是:LocalComputer/个人中的clientcert和LocalComputer/受信任人员中的服务器证书。我知道这并不是很重要,但它仍然会说“错误请求”-“错误消息:请求错误服务器在处理请求时遇到错误。有关更多详细信息,请参阅服务器日志。”有什么建议吗?
System.Net.ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, error) =>
                                                                                 {
                                                                                     return true;
                                                                                 };