在.net中访问远程服务时出错

时间:2018-12-20 06:38:30

标签: java c# .net wcf

我们正尝试通过HTTPS从远程系统访问Java Web服务到我们的.net客户端系统。我们遇到错误:

  

这可能是由于在HTTPS情况下未使用HTTP.SYS正确配置服务器证书。这也可能是由于客户端和服务器之间的安全绑定不匹配

有趣的是,它可以在SOAP UI中工作,但仅是Visual Studio的问题。为什么它可以在soap UI中工作,而不是在Visual Studio2010中工作

protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(CertificationvAlidatefunction);
            mainclass.ClientCredentials.UserName.UserName = "testuser";
            mainclass.ClientCredentials.UserName.Password = "test123";


            response = mainclass.Testmethod(request);

        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
    }
  private bool CertificationvAlidatefunction(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate,
      System.Security.Cryptography.X509Certificates.X509Chain chain, SslPolicyErrors errors)
    {
        return true;

}

1 个答案:

答案 0 :(得分:0)

dotnet框架可能与支持的TLS版本有关。我所知道的,。 Net4.0与tls1.2不兼容,有关详细信息,请参考以下问题。
Which versions of SSL/TLS does System.Net.WebRequest support?
使用以下代码段设置配置。

 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11;
            ServiceReference2.Service1Client client = new ServiceReference2.Service1Client();
            client.ClientCredentials.ServiceCertificate.SslCertificateAuthentication =
 new X509ServiceCertificateAuthentication()
 {
     CertificateValidationMode = X509CertificateValidationMode.None,
     RevocationMode = X509RevocationMode.NoCheck
 };

请随时告诉我是否有什么需要帮助的地方。