我的 SQL 连接字符串没有使用连接字符串中提供的身份验证时遇到问题。我使用自跟踪实体编写了一个 ASP.NET 应用程序,我需要访问来自两个不同服务器的数据。第一个服务器 SQLSERVER1 正在使用 Windows 身份验证,并且在域上,我能够很好地提取我的数据。然而,第二个服务器连接位于域外的另一个盒子上,我需要使用特定的登录名和密码来访问数据。我确认我在连接字符串中使用的凭据可以很好地连接到服务器。
在我的网络服务器设置中,我的 IIS7 中的应用程序池在其自己的凭据“Domain\AppPoolUser”下运行。
出于某种原因,每当我在发布到网络服务器后尝试从 SQLSERVER2 调用数据时,我都会收到以下错误,即使我已经在连接字符串中指定了凭据并且它们是有效的。但是,如果我在本地调试应用程序,则连接工作正常:用户“DOMAIN\AppPoolUser”登录失败。
似乎它没有使用我在连接字符串中指定的凭据,而是尝试作为应用程序池凭据进行连接。如何设置连接字符串以使用我提供的凭据?这是我的连接字符串:
<add name="ADATrackingContext" providerName="System.Data.SqlClient" connectionString="Server=SQLSERVER1;Database=ADATracking;Integrated Security=True;" />
<add name="PatientContext" providerName="System.Data.SqlClient" connectionString="Server=SQLSERVER2;Database=Patients;uid=PatientUser;password=123456;Integrated Security=False;" />