1

我有一个使用 Microsoft 访问数据库 (MDB) 在经典 ASP 中构建的网站。我将该站点设置为在 Windows 7 64 位机器上运行。当我将站点添加到 IIS 时,我选择了一个 .net 2.0 应用程序池。此池是使用经典管道设置的,并打开了 32 位应用程序支持。这工作得很好。

现在我正在向该站点添加搜索功能。我正在利用 Windows 索引服务并使用 asp 查询目录。当我将搜索功能添加为新应用程序时,我告诉它使用 64 位应用程序池。无论出于何种原因,搜索功能似乎都没有正确使用指定的 64 位应用程序池。

如果我打开我为主站点指定的 32 位应用程序池并关闭对 32 位应用程序的支持,搜索工作但由于没有 64 位喷射驱动程序 (MDB) 访问查询失败。

如何让 IIS 对主站点和作为子目录添加到该站点的应用程序使用具有不同位数的不同应用程序池?

我考虑将 mbd 数据库转换为 accdb,因为 accdb 有 64 位驱动程序。目前,我不能这样做,因为我们当前的托管公司在 win2k 机器上运行该站点。我正在挑选一个新主机,并将让该站点在 win 2008/2012 服务器中运行。那时我可以升级数据库,但由于代码中有很多地方,这会变得很痛苦,并且可能需要一些时间,因为站点经常更改,并且在转换时我必须维护 2 个版本。

麦克风

4

3 回答 3

0

在搜索了将近一天试图让 2 个应用程序池一起玩之后,我发现问题出在座椅和键盘之间的物体上。让我解释。

当我将搜索文件作为新应用程序移动到子文件夹时,我忘记更新搜索表单的目标以指向新位置中的文件。它仍然指向旧位置。这就是搜索运行在 32 位而不是 64 位的原因。

我现在可以说在 Windows 7 IIS 上运行的经典 ASP 可以有多个不同位数的应用程序池。

于 2013-11-01T19:06:27.347 回答
0

在子文件夹的 webconfig 中将inheritinchildapplications ="false" 放入路径中

<location path="." inheritInChildApplications="false">
<system.web>
于 2013-11-01T14:01:44.760 回答
0

如果我打开我为主站点指定的 32 位应用程序池并关闭对 32 位应用程序的支持,搜索工作但由于没有 64 位喷射驱动程序 (MDB) 访问查询失败。

...

我考虑将 mbd 数据库转换为 accdb,因为 accdb 有 64 位驱动程序。目前,我不能这样做,因为我们当前的托管公司在 win2k 机器上运行该站点。我正在挑选一个新主机,并将让该站点在 win 2008/2012 服务器中运行。那时我可以升级数据库,但由于代码中有很多地方,这会变得很痛苦,并且可能需要一些时间,因为站点经常更改,并且在转换时我必须维护 2 个版本。

没有必要这样做。

IIS 可以在任何 64 位窗口中以 64 位或 32 位模式自行运行。这可以使用Enable32BitAppOnWin64IIS6 上的指令激活或启用 IIS 7.x 中的32应用程序选项旧 Microsoft Access 数据库( Access 2007-2010 数据库格式(),您只需要安装正确的驱动程序。.mdbaccdb

目前,Microsoft Access 数据库的 64 位模式由Microsoft.ACE.OLEDB.12.0驱动程序(即Microsoft Access Database Engine 2010 Redistributable )提供

Windows 的默认安装带有旧的和已弃用的 Microsoft Access 数据库驱动程序或Microsoft.Jet.OLEDB.4.0. 忽略它并安装新的

安装新驱动程序时,您可能需要在所有连接字符串中进行一些修改(如果您不使用 DSN 的连接),但所有旧功能都可以在新驱动程序中使用。

注意:您必须安装与您在主机中安装的 Office 版本(32 位/64 位)对应的驱动程序(如果适用)。如果您在服务器中安装了 Office(32 位),则无法安装 64 位驱动程序。如果您没有在服务器中安装 Office,请忽略此注释。

于 2013-11-01T18:14:46.697 回答