MORE INFORMATION
Microsoft Internet Information Services (IIS) is a multi-threaded process that requires special consideration when you develop and use Visual Basic 6.0 DLLs.
Two properties of Visual Basic 6.0, the
Retain in Memory property and the
Unattended Execution property, must both be set to True to run in IIS. Miscompiled Visual Basic DLLs are the Visual Basic DLLs that are compiled with the
Retain in Memory property set to False, with the
Unattended Execution property set to False, or with both properties set to False.
For additional information about the Retain in Memory property and the Unattended Execution property, click the following article number to view the article in the Microsoft Knowledge Base:
241896
PRB: Threading issues with Visual Basic 6.0 ActiveX components
Different symptoms may occur on your Web server if Visual Basic DLLs are miscompiled. For example, IIS may stop responding (hang), IIS may crash, or you may receive HTTP 500 error messages.
You can download and use the IIS Debug toolkit to determine if you have any loaded Visual Basic DLLs that are miscompiled. To download the IIS Debug toolkit, visit the following Microsoft Web site:
To check these properties on your loaded Visual Basic DLLs, extract the toolkit files, and then run the following command on your Web server:
This command generates a file that is named Sysinfo_
datetimestamp.xml. Scan the file for information that resembles the following:
DLL Path="C:\INETPUB\WWWROOT\SIMPLE.DLL"
Version="1.0.0.0"
Timestamp="12/01/2004 15:08:42"
UnattendedExecution="false"
RetainInMemory="false"
If the
Retain in Memory property is set to False or if the
Unattended Execution property is set to False, the Visual Basic DLL is miscompiled.
If you have miscompiled Visual Basic DLLs, use one of the following methods to resolve the problem based on your version of IIS:
IIS 4.0
Make sure that the version of Msvbvm60.dll is 6.0.96.32 or later and that the file is dated June 21, 2002 or later. If you do not have this version or a later version of Msvbvm60.dll, you can update the Visual Basic runtime. To update the Visual Basic runtime, visit the following Microsoft Web site:
Note Alternatively, you can recompile the Visual Basic DLL with both the
Retain in Memory property set to True and the
Unattended Execution property set to True.
IIS 5.0
Make sure that the version of MSvbvm60.dll is 6.0.96.32 or later and that the file is dated June 21, 2002 or later. To do this, use either of the following methods:
- Install Microsoft Windows 2000 Server Service Pack 4 (SP4).
For additional information about how to locate Windows Server Service Pack 4, click the following article number to view the article in the Microsoft Knowledge Base:
260910
How to obtain the latest Windows 2000 service pack
- Update the Visual Basic runtime. To update the Visual Basic runtime, visit the following Microsoft Web site:
Note Alternatively, you can recompile the Visual Basic DLL with both the
Retain in Memory property set to True and the
Unattended Execution property set to True.
IIS 5.1
Make sure that the version of Msvbvm60.dll is 6.0.96.32 or later and that the file is dated June 21, 2002 or later. If you do not have this version or a later version of Msvbvm60.dll, you can update the Visual Basic runtime. To update the Visual Basic runtime, visit the following Microsoft Web site:
Note Alternatively, you can recompile the Visual Basic DLL with both the
Retain in Memory property set to True and the
Unattended Execution property set to True.
IIS 6.0
The server may be running in worker process isolation mode or in compatibility mode. If the server is running in worker process isolation mode, do either of the following:
If the server is running in IIS 5.0 compatibility mode, you can follow the instructions for IIS 5.0. Note, however, that you cannot install Windows 2000 Server SP4 on Microsoft Windows Server 2003.
Alternatively, you can recompile the Visual Basic DLL with both the
Retain in Memory property set to True and the
Unattended Execution property set to True.