SQL Server的Microsoft OLE DB提供程序错误';80004005';
我已经将一个经典的ASP站点迁移到一个新服务器,并收到以下错误消息 我尝试了不同的连接字符串,但都不起作用 我甚至不确定连接字符串是否是问题所在 新服务器是Windows 2012 server、SQL server 2008 R2 Express计算机SQL Server的Microsoft OLE DB提供程序错误';80004005';,sql,sql-server,sql-server-2008,asp-classic,Sql,Sql Server,Sql Server 2008,Asp Classic,我已经将一个经典的ASP站点迁移到一个新服务器,并收到以下错误消息 我尝试了不同的连接字符串,但都不起作用 我甚至不确定连接字符串是否是问题所在 新服务器是Windows 2012 server、SQL server 2008 R2 Express计算机 尝试在连接字符串中ping服务器。应用程序所在的服务器应该能够在您通过凭据指定的端口上进行通信。如果您在本地开发,请尝试指定“localhost”。如果服务器是群集服务器或作为实例安装,则需要指定该实例。如果使用sql凭据,还要确保服务器配
尝试在连接字符串中ping服务器。应用程序所在的服务器应该能够在您通过凭据指定的端口上进行通信。如果您在本地开发,请尝试指定“localhost”。如果服务器是群集服务器或作为实例安装,则需要指定该实例。如果使用sql凭据,还要确保服务器配置为混合模式身份验证 或尝试
数据源=本地主机;初始目录=DBNAME;持久安全信息=True;用户ID=我的用户名;密码=我的密码 如果它是Express实例,则很可能不是默认实例,而是命名实例。你可能是说:
... "Provider=SQLNCLI10;Server=.\SQLEXPRESS; ...
--- instead of just (local) ---^^^^^^^^^^^^
否则,您需要在该计算机上的SQL server Configuration Manager中向我们显示服务器属性,以便我们能够告诉您如何更正连接字符串。这可能是权限问题,请检查服务器是否使用SQL management中相同的配置详细信息进行连接。
另一个是用户名/密码错误。正如Aaron Bertrand提到的,查看您的连接属性(在Sql Server配置中,检查是否启用了以下名称管道和TCP/Ip)会很有趣。 由于您可以从SSMS进行连接,我想问您是否允许在该服务器上进行远程连接。您能告诉我Sql browser服务是否正在运行吗 这里有一个链接,我将它作为提醒或检查SQL Server上可能出现的连接问题的清单保存在身边。
最后,您可以尝试使用“SQLNCLI”而不是“SQLNCLI10”作为提供程序 编辑:请注意,下面的几个示例中,有一个有趣的方法用于创建要使用的正确连接字符串
cmd.ActiveConnection = Application("C2M_ConnectionString")
如何实例化cmd
与连接字符串错误不同的是,cmd
在新环境中的行为可能有所不同
编辑以添加:
我看到您已从IIS 7转到IIS 8。要在IIS 7上运行经典ASP站点,需要手动更改服务器默认值,例如“允许父路径”。是否可能某些必要的调整没有迁移过来
如果你没有在Option Strict On下运行,你应该试试——它经常会暴露出这样微妙问题的根源。(当然,首先您必须声明所有变量,这对于完成的代码来说非常繁琐。)您是否尝试过SQL Server OLE DB驱动程序连接字符串:
"Provider=sqloledb;Data Source=(local);Initial Catalog=mysite_live;User Id=mysitec_Live;Password=mypass;"
或ODBC驱动程序:
"Driver={SQL Server};Server=SERVERNAME;Trusted_Connection=no;Database=mysite_live;Uid=mysitec_Live;Pwd=mypass;"
如果没有任何帮助,至少我会这么做。也许您可以获得更多有用的错误信息。这可能是x86/x64的问题吗 以下线程似乎表明(本地)别名是在64位服务器上失败的32位别名: (请注意,错误与您的错误完全相同) 在服务器上测试.udl时,是否同时测试了x86和x64 按照本文()的建议,您可以测试您的 本地udl:
- 在64位中,只需双击它(与运行“C:\Program Files\Common Files\System\Ole DB\oledb32.dll”相同),OpenDSL文件C:\\test.udl
- 通过双重运行C:\Windows\syswow64\rundll32.exe“C:\Program Files(x86)\Common Files\System\Ole DB\oledb32.dll”,OpenDSL文件C:\\test.udl,以32位格式显示
您是否尝试使用服务器IP地址而不是“(本地)”地址? 类似于“Server=192.168.1.1;”(显然,您需要使用服务器的真实IP地址) 如果您试图使用服务器IP地址,请在“SQL server配置程序”中检查SQL server正在侦听您在连接中使用的IP地址。() 其他有用的检查/尝试事项:
- 并检查数据库是否位于默认SQL Server实例中,或者是否位于命名实例中
- 您是否已检查防火墙是否具有打开SQL Server端口的TCP/IP规则
- 您是否尝试使用其他使用TCP/IP连接的软件连接到SQL Server
"Provider=sqloledb;Data Source=(local);Initial Catalog=mysite_live;User Id=mysitec_Live;Password=mypass;"
"Driver={SQL Server};Server=SERVERNAME;Trusted_Connection=no;Database=mysite_live;Uid=mysitec_Live;Pwd=mypass;"