Microsoft Access 数据库在将Active Server Pages (ASP) 用于小型应用程序的开发人员中已经流行多年,但Microsoft Access 数据库不是为可伸缩性而设计的,因此Access 数据库应该只在性能不是一个因素的情况下使用,并且最好不要使用Microsoft Access 数据库托管大型数据驱动应用程序。
在IIS 7.0、IIS 7.5 及更高版本中,进行了多项安全更改,这些更改可能会影响经典ASP 应用程序的运行方式。例如,如果您要将使用网站内容区域内的Access 数据库的经典ASP 应用程序复制到使用IIS 7.0 或更高版本的服务器,您可能会收到以下错误消息:
Microsoft JET 数据库引擎错误“80004005”
未指明的错误。
/example.asp,第100 行
这是由Access 驱动程序触发的一般性错误,可能由于多种原因发生,但不正确的权限是一个常见原因。更具体地说,使用Microsoft Access 数据库的能力是通过Microsoft JET 数据库引擎实现的,该引擎在连接到Access 数据库时会创建各种临时文件和锁定文件。以下部分将讨论可能发生这种情况的一些原因以及如何解决这些情况。推荐阅读:《什么是ASP.NET虚拟主机?》
使用64 位系统
不幸的是,没有64 位ODBC 驱动程序,因此在64 位系统上,您必须以32 位模式运行应用程序。为此,请使用以下步骤:
1)在任务栏上,单击开始,指向管理工具,然后单击Internet 信息服务 (IIS) 管理器。
2)在连接窗格中,单击应用程序池。
3)突出显示应用程序的应用程序池,然后单击“操作”窗格中的“高级设置… ” 。
4)在Advanced Settings对话框中,为Enable 32-Bit Applications指定True。
5)单击确定关闭高级设置对话框。
注意:用于管理ODBC 连接的64 位控制面板小程序不会显示32 位ODBC 驱动程序。要解决此问题,您需要打开32 位ODBC 小程序。为此,请使用以下步骤:
1)单击“开始”,然后单击“运行”,或打开命令提示符。
2)输入以下命令:
Console
%windir%\syswow64\odbcad32.exe
3)按回车键。
使用用户访问控制
您需要使用具有完全管理权限的帐户来确保按照本文档中的步骤进行操作。这最好通过使用以下两种方法之一来完成:
1)使用本地管理员帐户登录您的计算机。
2)如果您使用具有管理权限但不是本地管理员帐户的帐户登录,请使用“以管理员身份运行”选项打开所有应用程序和所有命令提示符会话。
上述条件是必需的,因为Windows Vista 和Windows Server 2008 中的用户帐户控制 (UAC) 安全组件将阻止对IIS 配置设置的管理访问。
在IIS 7.0 及更高版本中使用失败请求跟踪
如果您将IIS失败请求跟踪配置为从HTTP 500 错误中捕获跟踪日志,当您检查失败的跟踪日志时,您将看到错误提示。
尽管此错误表明打开数据库时发生了故障,但它并未提供任何附加信息来帮助您将问题缩小到特定区域。推荐相关阅读:《使用ASP.NET虚拟主机的优缺点有哪些》