From 8e54e792fbbc910a6047eefe6fb20dd9e0cabc77 Mon Sep 17 00:00:00 2001 From: pan-wang Date: Thu, 15 Mar 2018 16:46:50 -0700 Subject: [PATCH] do shutdown check before processing request (#677) --- src/AspNetCore/Src/proxymodule.cxx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/AspNetCore/Src/proxymodule.cxx b/src/AspNetCore/Src/proxymodule.cxx index 7b827da4be..8ab880339a 100644 --- a/src/AspNetCore/Src/proxymodule.cxx +++ b/src/AspNetCore/Src/proxymodule.cxx @@ -83,6 +83,11 @@ ASPNET_CORE_PROXY_MODULE::OnExecuteRequestHandler( REQUEST_NOTIFICATION_STATUS retVal = RQ_NOTIFICATION_CONTINUE; APPLICATION* pApplication = NULL; STACK_STRU(struFileName, 256); + if (g_fInShutdown) + { + hr = HRESULT_FROM_WIN32(ERROR_SERVER_SHUTDOWN_IN_PROGRESS); + goto Finished; + } hr = ASPNETCORE_CONFIG::GetConfig(g_pHttpServer, g_pModuleId, pHttpContext, g_hEventLog, &pConfig); if (FAILED(hr)) @@ -172,8 +177,15 @@ ASPNET_CORE_PROXY_MODULE::OnExecuteRequestHandler( Finished: if (FAILED(hr)) { - pHttpContext->GetResponse()->SetStatus(500, "Internal Server Error", 0, hr); retVal = RQ_NOTIFICATION_FINISH_REQUEST; + if (hr == HRESULT_FROM_WIN32(ERROR_SERVER_SHUTDOWN_IN_PROGRESS)) + { + pHttpContext->GetResponse()->SetStatus(503, "Service Unavailable", 0, hr); + } + else + { + pHttpContext->GetResponse()->SetStatus(500, "Internal Server Error", 0, hr); + } } if (pApplication != NULL)