在32位Windows 7和IIS 7.5上运行经典ASP应用程序



我最近把我的电脑从XP升级到Windows 7。我使用IIS 6.0,但我现在使用IIS 7.5。当我在XP机器上时,我能够让我的Classic ASP页面运行并可见。我正在工作,能够从我的本地驱动器运行一个经典的ASP页面。我用的是SQL Server 2005。我用。net Framework Version 2.0的应用程序池设置了IIS 7.5。当我尝试运行页面时,我得到错误:"Microsoft OLE DB Provider for ODBC驱动程序错误'80004005' [Microsoft][ODBC驱动程序管理器]数据源名称未找到,未指定默认驱动程序"。我的代码是这样的:

randomConnection = "Provider=SQLOLEDB;Data Source=serverinstance;Initial Catalog=myDataBase;User Id=MyFakeUserID;Password=MyFakePassword;"
Set someRS = Server.CreateObject("ADODB.RecordSet")
mySQLStatement = "SELECT DISTINCT CarInfo.CarMake, CarInfo.CarColor FROM CarInfo"
someRS.Open mySQLStatement, randomConnection

代码在最后一行出错。我的代码还有很多功能。所有的代码都可以在IIS 6.0中正常工作。唯一的变化是我切换到了32位的Windows 7和IIS 7.5。有什么特别的东西需要下降,因为我有IIS 7.5?我在根目录中创建了测试ASP页面,没有任何数据库逻辑,页面呈现得很好。

您的连接字符串使用错误的提供程序- SQLOLEDB是SQL Server 2000或SQL Server 7的数据提供程序。你应该使用SQLNCLI(或SQLNCLI10)根据SQL Server 2005连接字符串。

试试这个…

Provider=SQLNCLI;Data Source=serverinstance;Initial Catalog=myDataBase;User Id=MyFakeUserID;Password=MyFakePassword;

您还试图使用mySQLStatement作为连接字符串打开连接。您需要重新阅读有关如何从ADODB连接和请求数据的文档。

如果你改变连接到服务器的方式,它是否工作或给你一个不同的错误?我在使用上面的版本和我们使用的版本之间得到不同的错误(下面的错误是因为我没有一个名为serverinstance的实例):

Set someRS = Server.CreateObject ("ADODB.Command")
someRS.ActiveConnection = "Provider=SQLOLEDB;Data Source=serverinstance;Initial Catalog=myDataBase;User Id=MyFakeUserID;Password=MyFakePassword;"
someRS.CommandText = "SELECT DISTINCT CarInfo.CarMake, CarInfo.CarColor FROM CarInfo" 
someRS.Prepared = true
Set someRSResults = someRS.Execute

另外,我们使用SQLOLEDB,它已经与SQL Server 2000, 2005和2008工作。也许我们需要把它更新到后面的版本,但它应该可以工作。

相关内容

最新更新