我有一个使用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个版本。
麦克
答案 0 :(得分:0)
在子文件夹的webconfig中,将inheritinchildapplications =“false”放入路径
<location path="." inheritInChildApplications="false">
<system.web>
答案 1 :(得分:0)
如果我打开我为主站点指定的32位应用程序池,并且 关闭对32位应用程序的支持,搜索工作,但从那以后 没有64位喷墨驱动程序(MDB)访问查询失败。
...
我考虑过将mbd数据库转换为accdb,因为有 accdb的64位驱动程序。目前,我不能这样做,因为我们 目前的托管公司正在win2k盒子上运行该网站。我在 选择新主机的过程将使该网站以胜利运行 2008/2012服务器。那时我可以升级数据库但是 因为代码中有很多地方会变得很痛苦 需要一些时间,因为网站经常更改,我必须保持2 转换时的版本。
没有必要这样做。
IIS可以在64位的任何窗口中以64位或32位模式运行。这可以使用Enable32BitAppOnWin64
directive on IIS6激活或启用32-bit application option in IIS 7.x,旧的Microsoft Access数据库(.mdb
)可以在64位或32位中访问无需更改新的 Micorsoft Access 2007-2010数据库格式(accdb
),您只需要安装正确的驱动程序。
目前,Microsoft.ACE.OLEDB.12.0
驱动程序a.k.a. Microsoft Access Database Engine 2010 Redistributable提供了Microsoft访问数据库的64位模式
Windows的默认安装程序附带旧的和不推荐使用的Microsoft Access数据库驱动程序或Microsoft.Jet.OLEDB.4.0
。只是忽略它并安装新的
安装新驱动程序时,您可能需要在所有连接字符串中稍微修改一下(如果您不使用DSN的连接),但所有旧功能都适用于新驱动程序。
注意:您必须安装与您在主机中安装的Office版本(32位/ 64位)相对应的驱动程序(如果适用)。如果您在服务器中安装了Office(32位),则无法安装64位驱动程序。如果您没有在serevr中安装Office,请忽略此注释。
答案 2 :(得分:0)
经过近一天的努力尝试让2个应用程序池一起玩得很好,我发现问题来自于座位和键盘之间的对象。让我解释一下。
当我将搜索文件作为新应用程序移动到子文件夹时,我忘记更新搜索表单的目标以指向新位置中的文件。它仍指向旧位置。这就是搜索以32位而不是64位运行的原因。
我现在可以说在Windows 7 IIS上运行的Classic ASP可以有多个具有不同位数的应用程序池。