无法获得经典的ASP应用程序来连接数据库

时间:2018-01-24 21:09:40

标签: sql-server asp-classic

我们有一个我们试图复兴的应用程序,它是在2010年用经典ASP编写的。到目前为止,我已经完成了以下工作:

  • 我在Amazon EC2上创建了一个Microsoft Server 2016实例
  • 我安装了IIS服务器
  • 我在IIS管理器中创建了网站,添加/链接了文件,并在http://localhost上成功运行了应用程序
  • 我安装了SQL Server 2017并导入了数据库备份(并成功创建了数据库)
  • 我创建了一个SQL Server用户并测试了我可以使用创建的数据库用户
  • 访问数据库
  • 我启用了SQL Server登录身份验证和Windows身份验证模式
  • 我添加了与IIS管理器的连接。
  • 我确认web.config.xml有正确的信息。

我收到以下错误:

2018-01-21 01:36:16 ::1 POST /intranet/process.asp |178|80004005|[Microsoft][ODBC_SQL_Server_Driver][DBNETLIB]SQL_Server_does_not_exist_or_access_denied. 80 - ::1

我注意到在代码中有一个文件,它有一个数据库连接的Session配置看起来不一样。

我不知道此时该做什么。我们需要弄清楚如何将这个数据库连接到应用程序

下面是根目录中的web.config.xml:

<configuration>
<appSettings />
<connectionStrings>
    <add connectionString="Server=server\SQLEXPRESS;Database=dbname;User ID=dbuser;Password=dbpass" name="SqlServer" />
</connectionStrings>
</configuration>

这是我在Intranet文件夹中的web.config.xml,用于管理区域:

<add name="WEB"
    connectionString="Server=server\SQLEXPRESS;Database=dbname;User ID=dbuser;Password=dbpass"
    providerName="System.Data.SqlClient" />

我发现文件global.asa有这个:

Sub Session_OnStart
       Session("ConnectString") = "Server=adifferentserver;Database=adifferentdatabase;UID=adifferentuser;PWD=adifferentpassword;Driver={SQL Server};"

这是我第一次使用ASP,所以你必须引导我找到你需要的其他文件。

1 个答案:

答案 0 :(得分:1)

Classic ASP中的global.asa文件充当初始化脚本,通常可以设置长期运行的变量,例如ApplicationSession变量。

如果此文件包含连接字符串变量,那么这是要更改为已迁移数据库的值。目前process.asp正在使用Session("ConnectString"),ADODB正在尝试使用SQL Server提供程序找到adifferentserver并失败。使用所需的提供程序和服务器更正连接字符串后,页面应该可以正常工作。

其他两个值来自于{7.0}及以上版本引入的web.config,它是专为Microsoft .Net设计的,而Classic ASP不知道其中配置的连接字符串。可能是有另一个使用ASP.Net的Web应用程序正在使用这些连接字符串。