diff --git a/src/AspNetCore/Inc/forwardinghandler.h b/src/AspNetCore/Inc/forwardinghandler.h index 06fde91..bc65552 100644 --- a/src/AspNetCore/Inc/forwardinghandler.h +++ b/src/AspNetCore/Inc/forwardinghandler.h @@ -27,6 +27,7 @@ enum FORWARDING_REQUEST_STATUS FORWARDER_SENDING_REQUEST, FORWARDER_RECEIVING_RESPONSE, FORWARDER_RECEIVED_WEBSOCKET_RESPONSE, + FORWARDER_RESET_CONNECTION, FORWARDER_DONE }; diff --git a/src/AspNetCore/Src/dllmain.cpp b/src/AspNetCore/Src/dllmain.cpp index d71c296..c69c435 100644 --- a/src/AspNetCore/Src/dllmain.cpp +++ b/src/AspNetCore/Src/dllmain.cpp @@ -51,7 +51,7 @@ VOID HKEY hKey; if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, - L"SOFTWARE\\Microsoft\\IIS Extensions\\AspNetCore Module\\Parameters", + L"SOFTWARE\\Microsoft\\IIS Extensions\\IIS AspNetCore Module\\Parameters", 0, KEY_READ, &hKey) == NO_ERROR) diff --git a/src/AspNetCore/Src/forwardinghandler.cxx b/src/AspNetCore/Src/forwardinghandler.cxx index 6e4f37c..0fe0ea9 100644 --- a/src/AspNetCore/Src/forwardinghandler.cxx +++ b/src/AspNetCore/Src/forwardinghandler.cxx @@ -1591,6 +1591,12 @@ Return Value: retVal = RQ_NOTIFICATION_PENDING; goto Finished; } + else if (m_RequestStatus == FORWARDER_RESET_CONNECTION) + { + hr = HRESULT_FROM_WIN32(ERROR_WINHTTP_INVALID_SERVER_RESPONSE); + goto Failure; + + } // // Begins normal completion handling. There is already a shared acquired @@ -2185,6 +2191,12 @@ None Failure: + if (hr == HRESULT_FROM_WIN32(ERROR_WINHTTP_INVALID_SERVER_RESPONSE)) + { + m_RequestStatus = FORWARDER_RESET_CONNECTION; + goto Finished; + } + m_RequestStatus = FORWARDER_DONE; pResponse->DisableKernelCache();