我正在尝试将我的 C# Web 应用程序迁移到在 Windows Server 2012 R2 上运行的生产实例。当我尝试通过 IIS 浏览应用程序时,我收到一个奇怪的错误“客户端和服务器无法通信,因为它们不具备通用算法”,我不完全确定它是什么意思。
我在网上阅读了一些与我类似的其他问题,他们说问题源于 SSL/TLS 的不兼容问题。我相信我的新服务器在检查 regedit 并找到我认为是我的 TLS 证书后使用 TLS 1.2。每当我的应用程序尝试连接到在位于不同实例的 SQL Server 2008 数据库系统上运行的数据库时,它就会遇到此错误。我的网站当前托管的位置没有任何问题(它在 Windows Server 2008 R2 实例上运行)。
我的问题是,你知道我在哪里可以找到我的应用程序在生产服务器和我的 SQL Server 数据库实例上的安全证书吗?它们是否必须相似才能解决这个“客户端和服务器无法通信,因为它们不具备通用算法”错误。任何帮助将不胜感激。
最佳答案
升级您的项目以使用 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(如果可用)。
关于C# 客户端和服务器无法通信,因为它们不具备通用算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46735807/