How To Deploy BotDetect ASP Classic CAPTCHA Without Running the Setup Package
The easiest way to deploy BotDetect Classic ASP Captcha to your servers is to run the setup package, and simply deselect web applications on the feature selection screen (since you probably don't need BotDetect samples on your server).
However, if this is not an option for you, the required files are also included in the
Redistribute folder, so you can run the setup package on your development machine, and deploy those files manually after uploading them to your server(s).
BotDetect ASP component deployment requires administrative privileges on the server either way – both the setup package and the manual registration procedure have to make system modifications that simply can't be done with a limited user account.
The manual deployment procedure involves several steps:
- Add the
BotDetect.COM.dllassembly to the .NET GAC
- Register the BotDetect COM interface in the Windows Registry
- Make BotDetect sound packages accessible to your applications
Furthermore, if you're updating BotDetect to a newer (3.x) version, you'll have to first remove the old BotDetect Captcha component version before registering the new one.
Add the BotDetect COM Captcha assembly to the .NET GAC
The BotDetect COM Captcha component is implemented as a .NET 2.0 assembly, and to make it globally accessible on your server it has to be added to the .NET Global Assembly Cache.
- From the Control Panel, choose Administrative Tools > Microsoft .NET Framework 2.0 Configuration > Manage the Assembly Cache > Add an Assembly to the Assembly Cache
- Browse to where you uploaded the BotDetect Captcha COM assembly:
Alternatively, if you have the .NET 2.0 SDK on the server, you can also use the command line
gacutil utility, for example:
"C:\Program Files\Microsoft Visual Studio 8\Sdk\v2.0\bin\gacutil.exe" /nologo /if BotDetect.COM.dll
Register the BotDetect COM interface in the Windows Registry
BotDetect COM functionality needs to be available to ASP (and potentially, other COM clients) through the
This can be done using the
regasm utility coming with the .NET framework, running the following command line:
%WINDIR%\Microsoft.Net\Framework\v2.0.50727\RegAsm.exe BotDetect.COM.dll /nologo /tlb:BotDetect.COM.tlb /verbose > regasm.log
We redirected the registration output from the command line to the
regasm.log file, so in case you encounter any difficulties running this command, you can send us the resulting log to help troubleshooting.
Make BotDetect Sound Packages Accessible to Your Applications
Since BotDetect Captcha sound packages are read by the COM component from the file-system during ASP application execution, the IIS worker process running the ASP application pool must have read rights to the sound package folder.
Depending on your OS and IIS version and system configuration, different user accounts might be involved. Considering that BotDetect sound packages are simple sound data containers, it's possible to grant all users generic read permissions on them, by running:
cacls BotDetectSounds /G "Users":R /E /C /T
Of course, you can also give read permissions only to those user accounts which will be running the actual ASP applications using BotDetect Captcha.
You will also have to configure your ASP applications using BotDetect to read sound packages from the folder you uploaded them to. You can do this by editing the
BotDetect\CaptchaConfig.asp file in the Captcha library copies included in your applications.
C:\Websites\BotDetectSounds, you would specify:
LBD_Configuration_SoundPackageFolder = "C:\Websites\BotDetectSounds"
Remove Old BotDetect CAPTCHA Component Versions
If you're upgrading BotDetect Captcha on your server from version 3.0.0 to 3.0.1, for example, you'll first have to remove the old version before registering the new one.
If the websites currently using the old BotDetect version are running, you'll have to temporarily stop IIS to make it release old
Then you undo the deployment steps in reverse, first unregistering the BotDetect COM interface, and afterwards removing the old assembly from the GAC.This could all be accomplished from the command line, by running for example:
net stop w3svc %WINDIR%\Microsoft.Net\Framework\v2.0.50727\RegAsm.exe BotDetect.COM.dll /u /nologo /tlb:BotDetect.COM.tlb /verbose "C:\Program Files\Microsoft Visual Studio 8\Sdk\v2.0\bin\gacutil.exe" /uf BotDetect.COM.dll /nologo net start w3svc
You could also remove the old assembly from the GAC using the Control Panel GAC management tool, if you used that to add it.