【问题标题】:Can't connect to SQL Server database from Local IIS over HTTPS无法通过 HTTPS 从本地 IIS 连接到 SQL Server 数据库
【发布时间】:2014-11-26 17:27:44
【问题描述】:

我正在使用 ASP.NET MVC5 开发一个应用程序,并使用 SqlClient (Dapper.NET) 连接到我的 SQL Server 数据库

我一直在 http://localhost:port/ 上使用本地 IIS,但现在我已切换到 HTTPS(自签名密钥),绑定为 https://www.mysite.com,并且主机文件将该 URL 重定向到 127.0.0。 0.1

我遇到的问题如下:

与服务器成功建立连接,但在登录过程中出现错误。 (提供者:SSL 提供者,错误:0 - 指定的数据无法解密。\r\n)

当我尝试使用标准 connection.Open() 调用连接到我的 SQL Server 数据库时,就会发生这种情况。

我读到过有人建议重新启动 IIS 服务器,或重新配置 SQL Server 数据库以强制关闭加密。我已经检查了这两个,但这并不能解决问题。

谁能解释一下这里可能出了什么问题?

【问题讨论】:

  • 尝试将Encrypt=True 添加到您的连接字符串中,看看是否有区别。
  • @Glk.net 是的,我已经尝试过了,但是错误更改为The certificate chain was issued by an authority that is not trusted,所以我设置了TrustServerCertificate=True,我又回到了同样的错误。
  • 我将把它取消标记为“dapper”;这不是一个 dapper 问题 - 在 ADO.NET 可以连接之前,甚至不涉及 dapper。

标签: c# sql-server asp.net-mvc iis


【解决方案1】:

我知道这是为什么...

这是一个可通过 NuGet 获得的组件,称为 NCrypt,我刚刚花了 6 个小时进行隔离。

我不确定如何,但是当它出现在我的 bin 文件夹中时,它会以某种方式干扰代码和 SQL Server 之间的握手过程。

当它被移除时,瞧! SQL 按预期连接。

【讨论】:

  • 不要认为 NuGet 包有任何问题。不久前,但我认为我的问题与项目属性有关。我记得这是偶然解决的问题。
  • 它是 NCrypt - 我从头开始,完全删除它,没有其他更改,现在连接正常。我不知道如何或为什么,但它可能与它与 Windows dll 同名有关。自己试试吧:)
猜你喜欢
  • 1970-01-01
  • 2019-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-03
  • 2018-04-02
相关资源
最近更新 更多