Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET 4.5客户端和服务器无法通信,因为它们没有通用的算法_C#_Asp.net_Ssl_Tls1.2 - Fatal编程技术网

C# ASP.NET 4.5客户端和服务器无法通信,因为它们没有通用的算法

C# ASP.NET 4.5客户端和服务器无法通信,因为它们没有通用的算法,c#,asp.net,ssl,tls1.2,C#,Asp.net,Ssl,Tls1.2,我使用ASP.NET创建了一个项目。当我在本地测试时,一切都很好。当我推送到服务器时,在我调用数据库的任何页面上都会出现此错误: 客户端和服务器无法通信,因为它们没有通用的算法 我尝试在Global.asax文件中将TLS设置为1.2,代码如下: ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 但那没有起作用 以下是更多错误详细信息: 已成功与服务器建立连接,但在登录过程中发生错误。提供程序:SSL提供程序,

我使用ASP.NET创建了一个项目。当我在本地测试时,一切都很好。当我推送到服务器时,在我调用数据库的任何页面上都会出现此错误:

客户端和服务器无法通信,因为它们没有通用的算法

我尝试在Global.asax文件中将TLS设置为1.2,代码如下:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
但那没有起作用

以下是更多错误详细信息:

已成功与服务器建立连接,但在登录过程中发生错误。提供程序:SSL提供程序,错误:0-客户端和服务器无法通信,因为它们没有通用算法。]


大家好,最近我得到了这些类似的问题,并解决后,一个较长的研究,请遵循以下步骤。 我们需要在以下步骤中启用TSL1.0、TSL1.1、SSL2注册表

1.单击“开始并运行”启动注册表编辑器。在不带引号的运行字段中键入regedit

2.突出显示注册表树顶部的计算机。首先单击文件,然后单击导出,备份注册表。选择文件位置以保存注册表文件

注意:您将编辑注册表。如果操作不正确,可能会对您的计算机造成有害影响,因此强烈建议进行备份

3.浏览到以下注册表项: HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

右键单击Protocols文件夹并从下拉菜单中选择New,然后选择Key。这将创建新文件夹。将此文件夹重命名为TLS 1.2

4.右键单击TLS 1.2键并在其下方添加两个新键

这两个新键是: 客户 服务器

5.右键单击客户机密钥,然后从下拉列表中选择New,然后选择DWORD 32位值

6.右键单击已启用的名称,然后选择“修改…”。。。从下拉菜单中

7.确保值数据字段设置为0,基数为十六进制。点击OK

8.对服务器密钥也重复步骤5至7


希望我能帮上忙。

我找到了解决这个问题的办法 将此添加到您的网络配置中,将解决此问题

<appSettings>
    <add key="AppContext.SetSwitch:Switch.System.Net.DontEnableSchUseStrongCrypto" value="false" />
    <add key="AppContext.SetSwitch:Switch.System.Net.DontEnableSystemDefaultTlsVersions" value="false" />
</appSettings>

您是否在服务器上安装了证书树,并在IIS中授权您的应用程序?您连接到的服务器使用哪种类型的安全连接?另外,请提供一些失败的示例代码@Greg我相信我们是这样做的。不建议启用TLS 1.0,并且禁止用于PCI合规性,TLS 1.0对于安全来说是不安全的。