0

我的 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;" />
4

3 回答 3

0

不确定它是否重要,但用户应该是User Id=而不是uid=

于 2012-06-12T18:58:36.333 回答
0

ADATrackingContext 连接字符串将尝试使用 Domain\AppPoolUser 域帐户登录,因为您已设置 Integrated Security = true。由于您没有 Domain\AppPoolUser 作为数据库的登录名,因此您将收到您描述的错误。

仔细检查以确保将正确的连接字符串传递给 DbContext。

于 2012-06-12T19:41:01.070 回答
0

看起来错误是由于我试图在我的客户端页面通过 ADATracking 连接字符串验证之前提取数据而导致的。我将数据调用移至 HomeController.cs 而不是 Global.asax 文件,现在一切正常。我的错。

于 2012-07-03T18:52:46.323 回答