One of the reasons why the VB ActiveX DLLs worked on IIS4 through 5.1 but
not on 6 is because of the VB Runtime having special hardcoded hacks to look
for process names of IIS4 through 5.1 and applying "retain in memory" and
"unattended execution" automatically. In other words, the user may have had
bad VB ActiveX DLLs, but he was transparently relying on the system to fix
them.
w3wp.exe for IIS6 is an unknown process name for any existing VB Runtime,
hence it doesn't apply the hacks, which exposes problems in the user's
ActiveX DLLs. I know this issue has come up a long time ago during IIS6
development and the VB team "fixed" their hack to recognize IIS6, but I do
not know if you're using that updated runtime.
One of the reasons that the hack exists is because EVERY VB DLL has to have
those options checked, or else you risk having issues. Often, VB controls
are built on other VB controls which you do not control and cannot fix -- so
the VB Runtime hack is a viable solution to that problem -- but it also
binds you to legacy.
If you try running IIS6 in IIS5 Compatibility Mode and everything magically
starts working, then I suspect you had broken code and you're relying on the
VB Runtime hack, even back on IIS4/5/5.1 -- so you need to get the updated
VB Runtime to eliminate that as a blocker on IIS6. There isn't anything
"wrong" with IIS6 -- the fundamental problem is within your code; the
implicit work-arounds that you're relying on just wasn't there, and that's
not exactly an IIS6 problem.
--
//David
IIS
This posting is provided "AS IS" with no warranties, and confers no rights.
//
""WenJun Zhang[msft]"" <v-wzhang.TakeThisOut@online.microsoft.com> wrote in message
news:846Ut6rTEHA.3468@cpmsftngxa10.phx.gbl...
If a form is contained in an ActiveX DLL, and W3wp.exe.cfg is used to
turn ON 'retain in memory' and 'unattended execution', then are these
options ACTUALLY turned ON?
[WenJun]
Turning on the two switches means w3wp.exe will not unload the dlls
as soon as current job is finished. They will remain in memory for
the next time beng callled. Have you restarted IIS after making the
w3wp.exe.cfg?
Why is it that my ASP application, which has been running
successfully on IIS 4 through 5.1, even though some of my ActiveX
DLLs do not have 'retain in memory' and 'unattended execution' turned
ON, is unable to run on IIS6 in "worker process isolation mode"? Is
this problem due solely to the fact that some ActiveX DLLs do not
have 'retain in memory' and 'unattended execution' turned ON?
[WenJun]
The most familiar symptom on IIS of incorrectly complied VB
dll(without the two switches) is memory leak, which generally isn't a
rapid failure but can cause crash or hang after memory overflow the
limitation. Therefore it's just a possibility. If the dlls can work
properly on your IIS5.x server without any problem and the 'out of
memory' error occurs initially on IIS6 WPI, just as David mentioned,
it most likes the dll is incompatible with IIS6 worker process mode.
Best regards,
WenJun Zhang
Microsoft Online Support
This posting is provided "AS IS" with no warranties, and confers no
rights.
Get Secure! -
www.microsoft.com/security >> Stay informed about: IIS 6.0 - Memory problem in "Worker process isolation mode"