【问题标题】:How is it possible that RestSharp is working on TEST-environment but not on my local machine?RestSharp 怎么可能在 TEST 环境上工作,但不在我的本地机器上?
【发布时间】:2015-08-31 15:42:35
【问题描述】:

我有一个非常奇怪的问题,现在花了我一天的时间。

错误异常。

System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.

at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)

at System.Net.HttpWebRequest.GetRequestStream()

at RestSharp.Http.WriteRequestBody(HttpWebRequest webRequest)

at RestSharp.Http.PostPutInternal(String method)

at RestSharp.RestClient.Execute(IRestRequest request, String httpMethod, Func`3 getResponse)

我的代码在 TEST 环境中运行,但不在我的本地环境中。该代码过去一直有效,并且没有任何改变。我在 SoapUi 中的本地机器上重现了 REST 调用,它在那里工作。我导入了 SSL 证书等。我的本地机器正在运行 Windows 7 和测试环境 Windows Server 2008。这两个环境都在运行 .NET Framework 4.5。

我在互联网上搜索了一个解决方案,我发现了很多,例如 The request was aborted: Could not create SSL/TLS secure channel http://robertgreiner.com/2013/03/could-not-establish-trust-relationship-for-the-ssl-tls-secure-channel/

我尝试了可能的解决方案,但没有解决问题。有谁知道解决办法吗?

非常感谢, 乔迪

【问题讨论】:

    标签: c# .net visual-studio visual-studio-2012 restsharp


    【解决方案1】:

    您的测试环境与另一台服务器握手时似乎出现问题。

    在调用服务器之前试试这个:

    ServicePointManager.ServerCertificateValidationCallback =
                            (s, certificate, chain, sslPolicyErrors) => true;
    

    PS:上面的行将禁用 SSL 验证。

    【讨论】:

    • 我不会允许你在不包括运行此代码的安全影响的情况下给出这样的答案。
    • @Aron 你的答案在哪里?
    • 我同意这个答案。只是您刚刚告诉 OP 禁用 SSL 而没有告诉他这意味着什么。
    • 不,正如我所说...看来他面临的问题与服务器和测试环境之间的握手有关。为了确认这一点,他可以使用我发布的代码。不应该是最终答案并在生产中使用。
    • 感谢您理解我,Thiago 建议的代码行已经在我的代码中几个月了(另请参阅我的问题中的链接)。该代码也在本地工作。代码中没有任何变化。我听说 SSL 证书已更改为通配符。我已经更新了 Windows 证书管理器中的证书。也许就是这样。
    【解决方案2】:

    SSL 证书的加密密钥太低/错误,因此在多次 Windows 更新后 Windows 不再接受它。解决方案是使用更高的加密密钥更新 SSL 证书。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-17
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2020-08-16
      • 1970-01-01
      相关资源
      最近更新 更多