1

I have a website that is build in classic ASP using Microsoft access databases (MDB). I setup the site to run on a windows 7 64-bit machine. When I added the site to IIS, I chose a .net 2.0 app pool. This pool was setup using classic pipeline and 32-bit application support turned on. This worked fine.

Now I'm adding a search function to the site. I'm leveraging the windows indexing service and querying the catalog using asp. When I add the search function as a new application, I told it to use a 64 bit app pool. For whatever reason the search function does not seem to be correctly using the specified 64-bit app pool.

If I turn open the 32 bit app pool I specified for the main site and turn off support for 32-bit applications, search works but since there are no 64 bit jet drivers (MDB) Access queries fail.

How do I get IIS to use different app pools with different bitness for a main site and an application added to that site as a subdirectory?

I thought about converting the mbd databases to accdb since there are 64 bit drivers for accdb. At present, I can't do that because our current hosting company is running the site on a win2k box. I'm in the process of picking a new host and will have the site run in win 2008/2012 server. At that point I could upgrade the databases but since there are many places in the code it would become a pain and may take some time since the site changes often and I'd have to maintain 2 versions while converting.

Mike

RCDAWebmaster
  • 55
  • 1
  • 9

3 Answers3

0

In the sub folder's webconfig put inheritinchildapplications="false" into the path

<location path="." inheritInChildApplications="false">
<system.web>
u07ch
  • 13,324
  • 5
  • 42
  • 48
  • Since I didn't have a web.config file in the subfolder, I added one with the 2 lines of code you provided. Nothing changed. The search page still ran under 32-bit app pool. am I missing something since you told me to add the code to my web.config file? is there supposed to be more than those 2 lines of code? – RCDAWebmaster Nov 01 '13 at 15:35
  • In my head I have translated asp -> asp.net the web.config file would have quite a bit of code in it besides those two lines. I don't think in /classic/ asp you can have a sub folder run on a different app pool as asp doesn't have the same config concept. You could put a global.asa file into the child folder which might do it. If it doesn't move the search function to a new folder on the root of the site - assuming that the root of the web server isn't set as 32 bit; if it si create a new site in IIS bound to another port and load the code from that in the main application. – u07ch Nov 01 '13 at 16:10
  • The root of the site is where I took the search page from and moved it to a sub directory as an application because the code needs to be run in 64-bit. I'll try to look at the global.asa file you mention. If I can't get that to work, I'll try and see if I can redesign the search to run in 32 bit mode. (bandaid). I am learning that at some point I'm going to need to redesign the site using a 64-bit database and have everything function in 64-bit. Also I want to move the site forward to .net as I've used it on a few other projects and hate trying to remember two similar languages. – RCDAWebmaster Nov 01 '13 at 17:41
0

If I turn open the 32 bit app pool I specified for the main site and turn off support for 32-bit applications, search works but since there are no 64 bit jet drivers (MDB) Access queries fail.

...

I thought about converting the mbd databases to accdb since there are 64 bit drivers for accdb. At present, I can't do that because our current hosting company is running the site on a win2k box. I'm in the process of picking a new host and will have the site run in win 2008/2012 server. At that point I could upgrade the databases but since there are many places in the code it would become a pain and may take some time since the site changes often and I'd have to maintain 2 versions while converting.

There is no need to do this.

IIS can run itself in 64-bit or 32-bit mode in any windows in 64-bits. this can be activated using the Enable32BitAppOnWin64 directive on IIS6 or enabling the 32-bit application option in IIS 7.x, the Old Microsoft Access Database (.mdb) can be accessed in 64-bit or 32-bit without the need of corversion to the new Micorsoft Access 2007-2010 database format (accdb), you only need to install the correct driver.

Currently, the 64-bit mode for Microsoft access databases it's provided by the Microsoft.ACE.OLEDB.12.0 driver a.k.a. Microsoft Access Database Engine 2010 Redistributable

the default instalation of windows come with the old and deprecated Microsoft Access Database driver or Microsoft.Jet.OLEDB.4.0. just ignore it and install the new one

When install the new driver maybe you need to modify a little bit in all your connection strings (if you don't use DSN's connections), but all the old functionality works in the new driver.

NOTE: You must install the driver that corresponds to the version (32-Bit/64-Bit) of Office that you have installed in the host (if applies). you cannot install the 64-bit driver if you have the Office (32-bit) installed in the server. If you don't have Office installed in the serevr Just ignore this note.

Community
  • 1
  • 1
Rafael
  • 3,081
  • 6
  • 32
  • 53
0

After searching for almost a day to try and get the 2 app pools to play nice together, I figuted out that the problem came from the object between the seat and the keyboard. Let me explain.

When I moved the search file to the sub folder as a new application, I forgot to update the target of the search form to point to the file in the new location. It was still pointing to the old location. This is why the search was running in 32 bit not 64 bit.

I can now say that Classic ASP running on windows 7 IIS can have multiple application pools with different bitness.

RCDAWebmaster
  • 55
  • 1
  • 9