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

时间:2017-05-16 16:00:32

标签: c# asp.net ssl tls1.2

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

  

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

我尝试使用以下代码行在我的Global.asax文件中将我的TLS设置为1.2:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

但那没有做任何事。

以下是更多错误详情:

  

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

2 个答案:

答案 0 :(得分:0)

最近,大家好,我都遇到了类似的问题,经过更长的研究后解决了,请按照以下步骤操作。 我们需要启用TSL1.0,TSL1.1,SSL2注册表。请按以下步骤操作。

1。通过单击“开始并运行”来启动注册表编辑器。在“运行”字段中输入“ regedit”(不带引号)。

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

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

3。浏览到以下注册表项: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols

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

4。右键单击TLS 1.2密钥,并在其下面添加两个新密钥。

两个新键是: 客户 服务器

5。右键单击Client键,然后从下拉列表中选择“新建”,然后选择“ DWORD(32位)值”。

6。右键单击名称Enabled,然后从下拉菜单中选择Modify...。

7。确保“值”数据字段设置为0,并且“基数”为十六进制。单击确定。

8。同样,对服务器密钥重复步骤5到7。

希望我能帮上忙。

答案 1 :(得分:0)

我找到了解决此问题的方法 将此添加到您的webconfig中,将解决问题

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

Cannot set app to use system default TLS version by adding appcontext settings in web.config