使用RestSharp&是否存在任何已知问题TLS 1.1?我们目前使用RestSharp将发布请求发送给供应商。该供应商不再接受TLS 1.0连接并更改为TLS 1.1。
问题是当他们从TLS 1.0切换到TLS 1.1时,我们已经不再使用RestSharp代码了。
我在2008 R2(在启用1.1和1.2的注册表设置之后)以及Windows 8.1上测试了这个。他们切换到TLS 1.1,RestResponse是:
“底层连接已关闭:发送时出现意外错误”
切换回TLS 1.0,没问题。我已经测试过使用谷歌浏览器访问他们的网站,它确实显示了TLS 1.1,因此服务器和客户端工作站能够使用TLS 1.1。它似乎只是RestSharp的问题......
答案 0 :(得分:0)
简单的解决方法是将您的项目更新到最新的.Net Framework。
答案 1 :(得分:0)
RestSharp已经documented这个问题:
WebRequest引发异常,因此您需要告诉.NET Framework接受比默认情况更多的证书类型。 将此行添加到您的应用程序中某个位置的位置(一次调用一次)应该可以解决此问题:
public JsonResult Incluir(ClienteModel model)
{
// This is where the method Search occurs.
BoClient bo = new BoClient();
if (!this.ModelState.IsValid)
{
List<string> erros = (from item in ModelState.Values
from error in item.Errors
select error.ErrorMessage).ToList();
Response.StatusCode = 400;
return Json(string.Join(Environment.NewLine, erros));
}
else
{
model.Id = bo.Incluir(new Client()
{
CEP = model.CEP,
CPF = model.CPF, // Field is Unique
});
return Json("Sucess");
}
}
```
因此,请考虑在 Program.cs 上添加以上行。