新的AspNetCoreModule module就像IIS以某种方式检测应用程序崩溃并重新启动它。它是如何实现的?只是通过询问Windows是否仍然存在进程或更微妙的东西(如可能是RPC调用)?如果进程挂起导致HTTP超时会发生什么?
答案 0 :(得分:1)
当AspNetCoreModule创建子进程时,它会通过socket和现有代码连接它来立即检查子进程是否已启动。如果子进程启动,则模块使用processInformation.hProcess和一些回调调用RegisterWaitForSingleObject,这样如果存在子进程,则将调用回调。在这种情况下,子进程挂起,模块将在超时后返回502返回客户端,并且不会终止子进程。