Sql server 2005 用于SQL server的Windows server 2012R2经典ASP Microsoft OLE DB提供程序错误';80040e4d';

Sql server 2005 用于SQL server的Windows server 2012R2经典ASP Microsoft OLE DB提供程序错误';80040e4d';,sql-server-2005,asp-classic,windows-server-2012-r2,Sql Server 2005,Asp Classic,Windows Server 2012 R2,我有一个经典的ASP应用程序,它在两天前被移动到windows server 2012R2,然后在应用程序的某些部分显示连接错误 针对SQL Server的Microsoft OLE DB提供程序错误“80040e4d”用户“sa”登录失败 登录和一些列表功能工作正常,但当Im访问计费页面时,它会显示上述错误,我们在计费页面中也使用相同的DB连接 下面是使用的连接字符串 Dim datasource,cnnCompanyDbase Set cnnCompanyDbase=Server.Creat

我有一个经典的ASP应用程序,它在两天前被移动到windows server 2012R2,然后在应用程序的某些部分显示连接错误

针对SQL Server的Microsoft OLE DB提供程序错误“80040e4d”用户“sa”登录失败

登录和一些列表功能工作正常,但当Im访问计费页面时,它会显示上述错误,我们在计费页面中也使用相同的DB连接

下面是使用的连接字符串

Dim datasource,cnnCompanyDbase
Set cnnCompanyDbase=Server.CreateObject("ADODB.Connection")
cnnCompanyDbase.Open "Provider=SQLOLEDB;Initial Catalog=CompanyDatabase;Data Source=192.168.0.20;User Id=sa; Password=satest;"
以前,该应用程序在windows server 2003上运行良好

编辑 在详细阅读了代码之后,我发现在使用DB命令对象打开记录集时有一些细微的差别

下面是两个场景

工作条件

qryStaff="SELECT * FROM [Staff]"

Set rstStaff=Server.CreateObject("ADODB.Recordset")
rstStaff.CursorType = adOpenStatic
rstStaff.Open qryStaff,cnnCompanyDbase
qryJobClients = "SELECT Client FROM Jobs WHERE Jobs.[Job-billing]=3"
Set rstJobClients=Server.CreateObject("ADODB.Recordset")
rstJobClients.CursorType = adOpenStatic 
rstJobClients.Open qryJobClients,getDBConnect()
错误条件

qryStaff="SELECT * FROM [Staff]"

Set rstStaff=Server.CreateObject("ADODB.Recordset")
rstStaff.CursorType = adOpenStatic
rstStaff.Open qryStaff,cnnCompanyDbase
qryJobClients = "SELECT Client FROM Jobs WHERE Jobs.[Job-billing]=3"
Set rstJobClients=Server.CreateObject("ADODB.Recordset")
rstJobClients.CursorType = adOpenStatic 
rstJobClients.Open qryJobClients,getDBConnect()

在上面的例子中,getDBConnect()方法返回cnnCompanyDbase。我已经打印了这两个函数并得到了精确的值,唯一的区别是一个函数来自一个方法,另一个函数直接给出了DB命令

将超级用户帐户用于连接字符串是非常糟糕的做法。为应用程序专门创建一个帐户,单独限制对该应用程序使用的数据库的访问,并使用该帐户。是的,我将其用作另一个帐户,我已将其作为示例连接提供。您确信这两个连接字符串是相同的吗?这是我们在SQL Server 2012的经典ASP应用程序中使用的:
PROVIDER=SQLOLEDB;数据源=;UID=;PWD=;数据库=我看不出您的连接字符串有任何问题,但您可以尝试使用本机客户端。以下是Sql Server 2005的详细信息。