当使用内置的 Web 服务器在本地运行网站时,我们的网站正确连接到数据库。但是,当我们将站点部署到运行 IIS 的服务器时,我们会收到数据库连接错误。数据库服务器与我们的 IIS 服务器不同。请注意,与 IIS 相同的服务器上的不同数据库的受信任连接可以正常工作。
我们需要做什么才能通过可信连接连接到不同服务器上的 SQL 数据库?
当使用内置的 Web 服务器在本地运行网站时,我们的网站正确连接到数据库。但是,当我们将站点部署到运行 IIS 的服务器时,我们会收到数据库连接错误。数据库服务器与我们的 IIS 服务器不同。请注意,与 IIS 相同的服务器上的不同数据库的受信任连接可以正常工作。
我们需要做什么才能通过可信连接连接到不同服务器上的 SQL 数据库?
当您使用 Cassini 运行网站时,Web 服务器进程使用的帐户是您用于登录 Windows 计算机的帐户。该帐户在 IIS 上会有所不同。
考虑将数据库开放给比您可能需要的可信连接更广泛的访问权限的安全隐患。也许您可以将 Windows 身份验证与服务帐户一起使用。也就是说,在 SQL Server 中创建具有有限权限的特定于应用程序的用户。然后,您将获得连接池的好处,同时避免传递凭据。
我会检查 IIS 中的应用程序域用于连接到 SQL Server 的用户帐户。IIS 中的帐户也可能无法访问网络资源,这将解释无法访问其他数据库服务器的问题。
听起来您需要配置数据库服务器以提供对您尝试连接的数据库的访问权限。
假设是 SQL Server,登录到 SQL Server Enterprise Manager 并在 Security -> Logins 下,打开适用用户的属性(可能是 Web 服务器的网络服务或 ASP.NET 帐户)并转到 Database Access 选项卡并确保为您要连接的数据库勾选了允许复选框。