Я использую приложение Angular 5 для отправки запроса на сервер веб-API ASP.NET через сервер IIS (версия 7.5).Я могу включить несколько строк в кодировке base64 в мой файл JSON.Из-за этого мой запрос на отправку обычно занимает около 30 секунд.Все работает нормально.Но затем я заметил, что во время запроса, если я выключаю браузер (Safari), загрузка ЦП процесса w3wp.exe на сервере внезапно возрастает с 5% до 50-60% и будет увеличиваться до тех пор, пока я его не убью.
===================================
Вот журнал дампа, который я нашелс использованием средств диагностики отладки:
Поток 33 - ИД системы 9708
Entry point ntdll!RtlUserThreadStart+1d
Create time 2018/11/27 11:22:22
Time spent in user mode 0 Days 04:39:44.303
Time spent in kernel mode 0 Days 00:00:23.992
Этот поток не решен полностью и может быть, а может и не быть проблемой.Может потребоваться дальнейший анализ этих потоков.
.NET Call Stack
Функция
System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion (IntPtr, System.Web.RequestNotificationStatus ByRef) System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion (IntPtr * System.Web.St23 * 10 * 10 * 1025)
Функция
Источник
clr!ExceptionTracker::CallHandler+fd
clr!ExceptionTracker::CallCatchHandler+90
clr!ProcessCLRException+31c
ntdll!RtlpExecuteHandlerForUnwind+d
ntdll!RtlUnwindEx+539
clr!ClrUnwindEx+40
clr!ProcessCLRException+2e9
ntdll!RtlpExecuteHandlerForException+d
ntdll!RtlDispatchException+45a
ntdll!RtlRaiseException+22f
KERNELBASE!RaiseException+39
clr!RaiseTheExceptionInternalOnly+2aa
clr!IL_Throw+10b
0x000007fe`9996bcb7
0x000007fe`99969002
0x000007fe`9996ea9f
0x000007fe`9996dd5d
0x000007fe`9996ca63
0x000007fe`9996b977
0x000007fe`99969002
0x000007fe`999677fa
0x000007fe`999674f5
0x000007fe`99966f36
0x000007fe`999664e0
0x000007fe`999661f1
0x000007fe`999660d0
0x000007fe`99965bb0
0x000007fe`999652be
0x000007fe`99964cc7
0x000007fe`99963ef3
0x000007fe`99963d95
System_Core_ni+3004fe
0x000007fe`9930df4a
0x000007fe`9930d8d6
0x000007fe`9930a8db
0x000007fe`99309a9d
0x000007fe`993018c7
0x000007fe`990b2b7b
0x000007fe`990b280e
System_Net_Http_ni+2cb85
0x000007fe`990b2053
System_Net_Http_ni+2ce35
0x000007fe`990b0c53
System_Net_Http_ni+2cb85
0x000007fe`990aeea7
System_Web_ni+2f5419
System_Web_ni+9c44e3
System_Web_ni+2b64f0
System_Web_ni+2cab1c
System_Web_ni+2b6fe9
System_Web_ni+2c8ffb
System_Web_ni+2b812d
System_Web_ni+2b7d33
System_Web_ni+9b2ec2
clr!UMThunkStub+6e
webengine4!W3_MGD_HANDLER::ProcessNotification+8e
webengine4!W3_MGD_HANDLER::DoWork+3a5
webengine4!RequestDoWork+3fc
webengine4!CMgdEngHttpModule::OnExecuteRequestHandler+21
iiscore!NOTIFICATION_CONTEXT::RequestDoWork+233
iiscore!NOTIFICATION_CONTEXT::CallModulesInternal+174
iiscore!NOTIFICATION_CONTEXT::CallModules+25
iiscore!W3_CONTEXT::DoWork+34d
iiscore!W3_CONTEXT::IndicateCompletion+8c
webengine4!W3_MGD_HANDLER::IndicateCompletion+5d
webengine4!MgdIndicateCompletion+22
System_Web_ni+324c6e
System_Web_ni+2b82f5
System_Web_ni+2b7d33
System_Web_ni+9b2ec2
clr!UM2MThunk_WrapperHelper+43
clr!UM2MThunk_Wrapper+60
clr!Thread::DoADCallBack+13d
clr!UM2MDoADCallBack+b3
clr!UMThunkStub+26d
webengine4!W3_MGD_HANDLER::ProcessNotification+8e
webengine4!ProcessNotificationCallback+42
clr!UnManagedPerAppDomainTPCount::DispatchWorkItem+1bc
clr!ThreadpoolMgr::ExecuteWorkRequest+64
clr!ThreadpoolMgr::WorkerThreadStart+f5
clr!Thread::intermediateThreadProc+86
kernel32!BaseThreadInitThunk+d
ntdll!RtlUserThreadStart+1d
Что можно сделать, чтобы этого не случилось?Если мой пользователь закрывает браузер во время запроса, я хочу, чтобы сервер IIS автоматически остановил этот процесс w3wp.exe.