我知道这个问题已经被问了很多,但没有一个答案对我有帮助。
发生的情况是,我正在 Azure VM 上的
.net 5
上发布我的 IIS
应用程序。
问题出在连接到虚拟机上的数据库服务器时。
使用具有以下连接字符串的 Azure SQl Server,工作正常:
Server=tcp:serverName.database.windows.net,1433;Initial Catalog=database;Persist Security Info=False;User ID=username;Password=Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
但是使用虚拟机上现有的 SQL Server 连接字符串,如下所示:
Server=ACS;Initial Catalog=database;Persist Security Info=False;User ID=username;Password=Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
导致以下错误:
HTTP 错误 500.30 - ASP.NET Core 应用程序无法启动
有人知道发生了什么事吗?我认为这与虚拟机上安装的 SQL Server 的安全性和权限有关。或者我应该在连接字符串中添加端口号。
默认情况下,SQL Server 安装有自签名 X.509 证书。除非您安装了自己的 CA 签名证书,或者您已导出公钥并将其添加到受信任的根存储中,否则您可能需要使用
TrustServerCertificate=True;
来代替。