Introduction Persits Software, Inc. offers all of its COM components as both 32-bit and 64-bit libraries. Functionality-wise, the 64-bit versions are identical to their 32-bit counterparts but can be used with IIS running in the native 64-bit mode.
The names for the 64-bit component DLLs are formed by adding '64' to the end of the filename. For example, the 64-bit AspUpload resides in the DLL aspupload64.dll.
The 64-bit setups are named the same way, e.g. the AspUpload installer's filename is aspupload64.exe.
The 32-bit and 64-bit Modes of IIS
For a Persits component to work properly on your 64-bit Windows server, the component's 'bitness' (i.e. 32-bit or 64-bit) must match that of your IIS.
On a 64-bit Windows server, IIS can be run in its native 64-bit mode or 32-bit compatibility mode.
On Windows 2003, the entire IIS can be configured to run in one mode or the other, but not both.
On Windows 2008, Vista, and 7, some virtual directories can be configured to run in the 32-bit mode, and others in the 64-bit mode. See below for details on how to configure your system to run in a particular mode.
What if there is a bitness mismatch?
If a 32-bit component is used with IIS running in the 64-bit mode, or vice versa, an error will occur. In classic ASP, the Server.CreateObject line will generate the error message
Microsoft VBScript runtime error '800a01ad'
ActiveX component can't create object
Note that due to Microsoft's penchant for ambiguity in error reporting, this error does not necessarily mean a bitness mismatch. It can also mean a lack of NTFS permissions on the component DLL (which is a totally different problem covered here.)
In .NET, an error may be even more vague, but will almost certainly be coming from the line where the instance of the object is being created.
To fix the bitness-mismatch error, you need to match up the bitnesses of the involved parties (IIS and the component.)
IIS running in a 32-bit compatibility mode
If the IIS you have to work with is run in a 32-bit compatibility mode, you have to use the 32-bit versions of the components. There is one caveat: the 32-bit registration key now needs to be placed in a different area of the system registry and you have to do it manually, as our setup applications won't do it for you.
The new registry location is:
HKEY_LOCAL_MACHINESOFTWAREWow6432NodePersits SoftwareRegKey
Note the additional node Wow6432Node in the path.
For example, the 32-bit registration key for AspUpload will go under
HKEY_LOCAL_MACHINESOFTWAREWow6432NodePersits SoftwareAspUpload3RegKey
and for AspEmail, under
HKEY_LOCAL_MACHINESOFTWAREWow6432NodePersits SoftwareAspEmailRegKey
and so on.
IIS running in the native 64-bit mode
In this case, you need to install the 64-bit version of the component. The easiest way is to run its 64-bit installer (such as aspupload64.exe) which takes care of registering the DLL and installing the key, if you already own one.
The registration key goes under its regular location (the same as a 32-bit key on a 32-bit system):
HKEY_LOCAL_MACHINESOFTWAREPersits SoftwareRegKey
The key itself is different, though. All 64-bit keys are 76-characters long and look something like this:
gkA0PNAOM4zGQLLyqKdoeMMxsdzosDm/STsnxCq0i4E93sq53r/HJDKcO9fcQOpOiQD3NDkostMB
With the exception of AspPDF, you have to purchase a 64-bit key anew even if you already own a 32-bit key. If you are unable or unwilling to purchase the 64-bit license, you still have the option of switching IIS to the 32-bit mode and reusing your existing 32-bit registration key.
An attempt to run the 64-bit version of a component with a 32-bit key will result in the following error:
Invalid key length. Should be 76 characters.
Windows 2008, Vista, 7, 8, 2012
Windows 2008/Vista/7 allows some virtual directories to run in the 32-bit mode, and others in the 64-bit mode. A virtual directory is configured to run in the 32-bit mode by configuring its Application Pool to enable 32-bit application, as shown below.
Therefore, you can run the 32-bit and 64-bit versions of the Persits components side by side on Windows 2008/Vista/7/8/2012. You still need separate 32-bit and 64-bit keys for all the products except AspPDF, and the key locations in the system registry are as described above.
Windows 2003
To enable the 32-bit mode, the following command needs to be executed:
cscript %SYSTEMDRIVE%inetpubadminscriptsadsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
To disable the 32-bit mode, the command is:
cscript %SYSTEMDRIVE%inetpubadminscriptsadsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0
(Source: http://support.microsoft.com/kb/894435).
It is important to know which mode your IIS is running in and choose the bitness of the component accordingly. Check with your webmaster or system administrator, if necessary.
Copyright © Persits Software, Inc. 1998 - 2021
For technical support, write to support@persits.com.