C# 客户端和服务器无法通信,因为它们不具备通用算法

标签 c# algorithm sql-server-2008 ssl iis

我正在尝试将我的 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/

相关文章:

c# - UWP 值不能为空。参数名称 : path1

c# - NLog 挂起(多线程问题?)

algorithm - 货币金额如何换算变化?

php - 优化 MySQL 或 PHP 的搜索功能

sql - 情况当不同的值然后求和另一个值?

c# - 在 mongodb 中执行高效的更新插入

c# - 来自外部应用程序的 Access 数据库中日期字段的月份名称 (C#)

c++ - 我需要一个更好的算法来解决这个问题

mysql - 删除数据库中的行是否会使该数据库释放空间?

sql - 删除时如何在存储过程中使用2个表?