【发布时间】:2021-08-26 11:13:46
【问题描述】:
我知道这个问题被问了很多,但没有一个答案对我有帮助。
发生的情况是,我正在 Azure VM 上的 IIS 上发布我的 .net 5 应用程序。
问题是在连接到 VM 上的数据库服务器时。
使用带有以下连接字符串的 Azure SQl 服务器,工作正常:
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;
但是使用 VM 上存在的 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 应用无法启动
有人知道发生了什么吗?我认为这与安装在 VM 机器上的 SQL Server 的安全性、权限有关。或者我应该在连接字符串中添加一个端口号。 任何帮助将不胜感激,谢谢。
【问题讨论】:
-
它是否适用于
Server=(local)? -
不,我已经尝试过(本地),.,并且仍然在做同样的事情。就像我没有访问服务器或数据库的权限一样。但是很奇怪,因为当我打开
Microsoft SQL Server Management Studio并且使用相同的用户名和密码时,我可以正常登录服务器! -
当您使用 SSMS 时,您是从 VM 上的远程会话还是在本地计算机上使用?您是否在 SQL Server 实例上启用了适当的网络提供程序(例如 tcp/ip)?
-
是的,我正在使用 RDP(远程桌面连接)访问 VM。
-
默认情况下,SQL Server 安装有自签名 X.509 证书。除非您已安装自己的 CA 签名证书,或者您已导出公钥并将其添加到您的 Trusted Roots 存储中,否则您可能希望改用
TrustServerCertificate=True;。
标签: .net sql-server iis