我正在尝试将我的C#Web应用程序迁移到在Windows Server 2012 R2上运行的生产实例。当我尝试通过IIS浏览应用程序时,我收到这个奇怪的错误"客户端和服务器无法通信,因为它们没有通用算法"我并不完全确定这意味着什么。
我在网上阅读了与我类似的其他一些问题,他们表示问题源于SSL / TLS的不兼容问题。我相信我的新服务器在检入regedit并找到我认为是我的TLS证书之后使用TLS 1.2。每当它尝试连接到位于不同实例上的SQL Server 2008数据库系统上运行的数据库时,我的应用程序都会遇到此错误。我的网站目前在哪里托管,它没有任何问题(它在Windows Server 2008 R2实例上运行)。
我的问题是,你知道我在哪里可以找到我的应用程序在生产服务器和我的SQL Server数据库实例上的安全证书,并且它们必须类似于解决这个问题"客户端和服务器无法通信,因为他们没有共同的算法"错误。任何帮助将不胜感激。
答案 0 :(得分:0)
原来问题是我需要在我的生产服务器上启用TLS 1.0和TLS 1.1才能解决问题。
答案 1 :(得分:0)
升级项目以使用ASP.NET 4.6或更高版本,或者在ASP.NET 4.5上使用以下代码
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; // .NET 4.5
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; // .NET 4.0
ASP.NET 4.6自动使用TLS 1.2(如果可用)。