Sql server 2005 用于SQL server的Windows server 2012R2经典ASP Microsoft OLE DB提供程序错误';80040e4d';
我有一个经典的ASP应用程序,它在两天前被移动到windows server 2012R2,然后在应用程序的某些部分显示连接错误 针对SQL Server的Microsoft OLE DB提供程序错误“80040e4d”用户“sa”登录失败 登录和一些列表功能工作正常,但当Im访问计费页面时,它会显示上述错误,我们在计费页面中也使用相同的DB连接 下面是使用的连接字符串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
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的详细信息。