IIS 7上承载的WCF无法验证消息的安全性

IIS 7上承载的WCF无法验证消息的安全性,wcf,ssl,iis-7,self-signed,Wcf,Ssl,Iis 7,Self Signed,我有一个托管在IIS7上的WCF服务,它使用自签名证书来提供HTTPS连接 服务器位于美国,但使用它的客户端在中东。为了让客户端能够使用该服务,我必须将服务器的时间和时区更改为客户端所在的国家。 此配置正在运行(现在几乎一年了),但从2天前开始,一些客户端停止工作并出现以下错误: 验证邮件的安全性时出错 如果我将服务器时间更改为在不工作的客户机之前一小时,这些客户机将能够使用该服务,但以前工作的客户机停止工作并收到相同的错误 有人知道我如何解决这个问题吗。 谢谢您可以从两个方面解决这个问题:如果

我有一个托管在IIS7上的WCF服务,它使用自签名证书来提供HTTPS连接

服务器位于美国,但使用它的客户端在中东。为了让客户端能够使用该服务,我必须将服务器的时间和时区更改为客户端所在的国家。 此配置正在运行(现在几乎一年了),但从2天前开始,一些客户端停止工作并出现以下错误:

验证邮件的安全性时出错

如果我将服务器时间更改为在不工作的客户机之前一小时,这些客户机将能够使用该服务,但以前工作的客户机停止工作并收到相同的错误

有人知道我如何解决这个问题吗。
谢谢

您可以从两个方面解决这个问题:如果您的IIS中安装了AppFabric或类似的东西,您可以开始为您的服务编写跟踪文件。这应该可以让您很好地了解服务器端出了什么问题

在客户端,在不接触服务器的情况下,您可能希望检查是否可以得到比.NET喜欢给出的“某些安全性问题不起作用”更具体的错误。尝试编写一个控制台应用程序来调用您的服务,并检查那里的SSL错误

namespace ServiceTestConsole
{
  using System;
  using System.Net;
  using System.Net.Security;
  using System.Security.Cryptography.X509Certificates;

  internal class Program
  {
    internal static void Main()
    {
      ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate;

      // add a service reference and call your service here

      Console.WriteLine("Press any key to continue");
      Console.ReadKey();
    }

    private static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslpolicyerrors)
    {
      Console.WriteLine("SSL Policy Error(s): " + sslpolicyerrors);

      return true;
    }
  }
}