Надеюсь, кто-то сможет помочь с этой очень странной ситуацией.
Процесс w3wp (для любого сайта на нашем сервере) вылетает из-за исключения нарушения доступа при его повторном использовании. Это происходит независимо от того, перезапускается ли он из-за ограничения по времени или запросов, или из-за ручного триггера. Похоже, это не связано с нашим приложением, поскольку фиктивный сайт без контента демонстрирует такое же поведение.
В производстве находятся 2 сервера с таким поведением, использующие NLB и ARR для балансировки нагрузки на ферму серверов IIS. У нас есть 2 тестовых сервера с одинаковой настройкой в нашей локальной инфраструктуре, которые также имеют эту проблему, но настройки «одного сервера» (и машины разработчика) одного и того же приложения не имеют этой проблемы.
Журналы событий этих ошибок выглядят следующим образом:
Faulting application name: w3wp.exe, version: 7.5.7601.17514, time stamp: 0x4ce7afa2
Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000
Exception code: 0xc0000005
Fault offset: 0x0000000000000001
Faulting process id: 0x32d8
Faulting application start time: 0x01d34d9dc16ec0b0
Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
Faulting module path: unknown
Report Id: f3b2821a-b991-11e7-9902-00505683efbb
Иногда у них есть другой модуль сбоя, но в основном он «неизвестен»:
Faulting module name: nativerd.dll, version: 7.5.7601.17855, time stamp: 0x4fc85321
or
Faulting module name: iiscore.dll, version: 7.5.7601.17514, time stamp: 0x4ce7c6c8
Я записал аварийные дампы при возникновении этих ошибок с помощью DebugDiag 2.2, и анализ показывает следующее для потока, в котором возникло исключение:
Thread 0 - System ID 16208
Entry point w3wp!wmainCRTStartup
Create time 25/10/2017 09:19:17
Time spent in user mode 0 Days 00:00:00.078
Time spent in kernel mode 0 Days 00:00:00.015
Call Stack
iiscore!W3_URL_INFO::`vftable'
nativerd!TerminateNativeConfiguration+16
w3wphost!W3WP_HOST::~W3WP_HOST+1fb
w3wphost!AppHostInitialize+325
w3wp!wmain+470
w3wp!PerfStopProvider+19b
kernel32!BaseThreadInitThunk+d
ntdll!RtlUserThreadStart+1d
Я также посмотрел на это в WinDbg и получил следующее:
OS Thread Id: 0x3f50 (0)
Current frame: iiscore!W3_URL_INFO::`vftable'
Child-SP RetAddr Caller, Callee
00000000001df570 000007fef91ef4d6 nativerd!TerminateNativeConfiguration+0x16
00000000001df5a0 000007fefb1c4797 w3wphost!W3WP_HOST::~W3WP_HOST+0x1fb, calling 0000000000010000
00000000001df5d0 000007fefb1c4269 w3wphost!AppHostInitialize+0x325, calling w3wphost!W3WP_HOST::~W3WP_HOST
00000000001df630 00000000ffbe3c60 w3wp!wmain+0x470
00000000001df670 000007feff3414e4 msvcrt!calloc_impl+0x85, calling ntdll!RtlAllocateHeap
00000000001df720 000007feff3541ba msvcrt!_wgetmainargs+0x7b, calling msvcrt!wsetenvp
00000000001df750 00000000ffbe10a2 w3wp!PerfStopProvider+0x4c, calling msvcrt!_wgetmainargs
00000000001df770 000000007715df6a ntdll! ?? ::FNODOBFM::`string'+0x149ca, calling ntdll!NtQueryPerformanceCounter
00000000001df790 000007feff348e47 msvcrt!initterm+0x1f
00000000001df7c0 00000000ffbe11f1 w3wp!PerfStopProvider+0x19b, calling w3wp!wmain
00000000001df7d0 00000000ffbe1351 w3wp!wmainCRTStartup+0x9, calling w3wp!_security_init_cookie
00000000001df800 0000000076ec59cd kernel32!BaseThreadInitThunk+0xd
00000000001df830 00000000770fa561 ntdll!RtlUserThreadStart+0x1d
Но я не понимаю, как это интерпретировать.
Было бы очень признательно за любое понимание того, что это могло быть, или как я мог бы продолжить диагностику.
Большое спасибо