BUG: Windows 11 behind IIS WebFarm, error with ARRhelper
I have a few old (classic) asp websites on a system located behind a WebFarm on IIS (Application Request Routing)
The application pool for these asp websites runs in 32-bit mode, Classic mode with .NET Runtime version 2.0, as soon as i request such asp website i am presented with:
Service Unavailable
HTTP Error 503. The service is unavailable.
Windows Eventviewer shows (sorry it is in Dutch):
Naam van toepassing met fout: w3wp.exe, versie: 10.0.22621.1, tijdstempel: 0xb182c367
Naam van module met fout: iiscore.dll, versie: 10.0.22621.608, tijdstempel: 0xa2e34fb2
Uitzonderingscode: 0xc0000005
Foutmarge: 0x0000a6c9
Id van proces met fout: 0x0x4360
Starttijd van toepassing met fout: 0x0x1D9D860D7D23910
Pad naar toepassing met fout: C:\WINDOWS\SysWOW64\inetsrv\w3wp.exe
Pad naar module met fout: C:\WINDOWS\system32\inetsrv\iiscore.dll
Rapport-id: d71f0338-7209-4033-9002-98556c07f2f6
Volledige pakketnaam met fout:
Relatieve toepassings-id van pakket met fout:
I also have a Windows Error Report listing in the eventlog:
Foutbucket , type 0
Naam van gebeurtenis: APPCRASH
Antwoord: Niet beschikbaar
Id van CAB-bestand: 0
Handtekening van probleem:
P1: w3wp.exe
P2: 10.0.22621.1
P3: b182c367
P4: iiscore.dll
P5: 10.0.22621.608
P6: a2e34fb2
P7: c0000005
P8: 0000a6c9
P9:
P10:
Toegevoegde bestanden:
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.08c28bb1-7156-4947-8c22-d62c196ab36e.tmp.mdmp
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.13bb0e15-7494-4751-9ddc-c96c442b7854.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.bcef22c6-f27c-470f-a1ff-492f828e3a11.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER.4901b4e4-c522-4d2e-8531-b6c745de9280.tmp.txt
Deze bestanden zijn mogelijk hier beschikbaar:
NULL
Analysesymbool:
Opnieuw zoeken naar oplossing: 0
Rapport-id: 26178941-e738-40f0-84e8-91ec53d51a58
Rapportstatus: 134217728
Opgedeelde bucket:
GUID van CAB-bestand: 0
WinDbg (preview) mdmp
!analyze -v
*******************************************************************************
* *
* Exception Analysis *
* *
*******************************************************************************
*** WARNING: Check Image - Checksum mismatch - Dump: 0x3c279, File: 0x3cdc7 - C:\ProgramData\Dbg\sym\iiscore.dll\A2E34FB23f000\iiscore.dll
KEY_VALUES_STRING: 1
Key : AV.Fault
Value: Write
Key : Analysis.CPU.mSec
Value: 9374
Key : Analysis.Elapsed.mSec
Value: 182349
Key : Analysis.IO.Other.Mb
Value: 71
Key : Analysis.IO.Read.Mb
Value: 1
Key : Analysis.IO.Write.Mb
Value: 124
Key : Analysis.Init.CPU.mSec
Value: 218
Key : Analysis.Init.Elapsed.mSec
Value: 127191
Key : Analysis.Memory.CommitPeak.Mb
Value: 132
Key : CLR.Engine
Value: MSCORWKS
Key : CLR.NOSOS
Value: 1
Key : CLR.Version
Value: 2.0.50727.9174
Key : Failure.Bucket
Value: INVALID_POINTER_WRITE_NOSOS_c0000005_iiscore.dll!W3_SERVER::Initialize
Key : Failure.Hash
Value: {9bac41b3-2f45-d1cb-67a0-f4c2319a6b83}
Key : Timeline.Process.Start.DeltaSec
Value: 1
Key : WER.OS.Branch
Value: ni_release
Key : WER.OS.Version
Value: 10.0.22621.1
Key : WER.Process.Version
Value: 10.0.22621.1
FILE_IN_CAB: WER.26273a21-2923-4bff-9c69-99934ad3ed9e.tmp.mdmp
NTGLOBALFLAG: 0
APPLICATION_VERIFIER_FLAGS: 0
CONTEXT: (.ecxr)eax=053fda38 ebx=77770000 ecx=03b5aa95 edx=00000020 esi=52c8528c edi=00000000
eip=52c8a6c9 esp=0565f3d8 ebp=0565f5a4 iopl=0 nv up ei pl zr na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010246
iiscore!W3_SERVER::Initialize+0xab0:
52c8a6c9 c7431011000000 mov dword ptr [ebx+10h],11h ds:002b:77770010=000000b8
Resetting default scope
EXCEPTION_RECORD: (.exr -1)ExceptionAddress: 52c8a6c9 (iiscore!W3_SERVER::Initialize+0x00000ab0)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000001
Parameter[1]: 77770010
Attempt to write to address 77770010
PROCESS_NAME: w3wp.exe
WRITE_ADDRESS: 77770010
ERROR_CODE: (NTSTATUS) 0xc0000005 - De instructie op 0x%p verwijst naar geheugen op 0x%p. Het geheugen kan niet worden %s.
EXCEPTION_CODE_STR: c0000005
EXCEPTION_PARAMETER1: 00000001
EXCEPTION_PARAMETER2: 77770010
ADDITIONAL_DEBUG_TEXT: SOS.DLL is not loaded for managed code. Analysis might be incomplete
STACK_TEXT:
0565f5a4 52cad945 0501a040 05370120 00000000 iiscore!W3_SERVER::Initialize+0xab0
0565f804 52caddbd 05370120 52cadd80 00000002 iiscore!IISCORE_PROTOCOL_MANAGER::InitializeGlobals+0x1bb
0565f81c 58a87d3c 00000000 00000000 00000000 iiscore!IISCORE_PROTOCOL_MANAGER::PreloadApplication+0x3d
0565f83c 58a87c9a 00000000 05370200 57fbfc10 w3wphost!W3WP_HOST::ProcessHttpPreloadApplications+0x58
0565f85c 58a88ccb 00010002 00000000 0501e0f8 w3wphost!W3WP_HOST::ProcessPreloadApplications+0x74
0565f87c 57fc17e1 0501e0f8 04c2a598 57fc1340 w3wphost!WP_IPM::AcceptMessage+0x1bb
0565f8bc 77796e84 0501e0f8 00000000 66b5a3ff iisutil!IPM_MESSAGE_PIPE::MessagePipeCompletion+0x4a1
0565f914 777ad924 0565fa3c 04c2a598 04c451c0 ntdll!RtlpTpWaitCallback+0xa4
0565f93c 777ad86d 00000000 04be0840 04c452b8 ntdll!TppExecuteWaitCallback+0x7e
0565f954 777ae9a7 0565fa3c 04c452b8 04c451c0 ntdll!TppWaitCompletion+0x7d
0565fb18 76a57ba9 04be0840 76a57b90 0565fb80 ntdll!TppWorkerThread+0x567
0565fb28 777db79b 04be0840 66b5a16b 00000000 kernel32!BaseThreadInitThunk+0x19
0565fb80 777db71f ffffffff 778089d8 00000000 ntdll!__RtlUserThreadStart+0x2b
0565fb90 00000000 00000000 00000000 00000000 ntdll!_RtlUserThreadStart+0x1b
STACK_COMMAND: ~6s; .ecxr ; kb
SYMBOL_NAME: iiscore!W3_SERVER::Initialize+ab0
MODULE_NAME: iiscore
IMAGE_NAME: iiscore.dll
FAILURE_BUCKET_ID: INVALID_POINTER_WRITE_NOSOS_c0000005_iiscore.dll!W3_SERVER::Initialize
OS_VERSION: 10.0.22621.1
BUILDLAB_STR: ni_release
OSPLATFORM_TYPE: x86
OSNAME: Windows 10
IMAGE_VERSION: 10.0.22621.608
FAILURE_ID_HASH: {9bac41b3-2f45-d1cb-67a0-f4c2319a6b83}
Followup: MachineOwner
---------
I double checked, on Windows 10 and/or Windows Server 2019 using the same application pool settings descibed above this is not a issue and ARRHelper works in 32-bit and 64-bit mode, as well as for (classic) asp.
In the meantime i have found a workarround to get rid of the "HTTP Error 503. The service is unavailable." errors by editing the ARRHelper settings in applicationHost.config by setting preCondition to "integratedMode", bypassing Classic Mode applcation pool used for (classic) asp websites.
<globalModules>
...
<add name="ARRHelper" image="%ProgramFiles%\IIS\ARR Helper\requestRouterHelper.dll" preCondition="integratedMode" />
</globalModules>