Remove extra arguments from CreateApplication (#952)
This commit is contained in:
parent
de197bfcd1
commit
cd81cfc243
|
|
@ -20,10 +20,9 @@
|
||||||
typedef
|
typedef
|
||||||
HRESULT
|
HRESULT
|
||||||
(WINAPI * PFN_ASPNETCORE_CREATE_APPLICATION)(
|
(WINAPI * PFN_ASPNETCORE_CREATE_APPLICATION)(
|
||||||
_In_ IHttpServer *pServer,
|
_In_ IHttpServer *pServer,
|
||||||
_In_ IHttpContext *pHttpContext,
|
_In_ IHttpApplication *pHttpApplication,
|
||||||
_In_ PCWSTR pwzExeLocation, // TODO remove both pwzExeLocation and pHttpContext from this api
|
_Out_ IAPPLICATION **pApplication
|
||||||
_Out_ IAPPLICATION **pApplication
|
|
||||||
);
|
);
|
||||||
|
|
||||||
extern BOOL g_fRecycleProcessCalled;
|
extern BOOL g_fRecycleProcessCalled;
|
||||||
|
|
|
||||||
|
|
@ -231,7 +231,8 @@ APPLICATION_INFO::EnsureApplicationCreated(
|
||||||
RETURN_IF_FAILED(HRESULT_FROM_WIN32(ERROR_INVALID_FUNCTION));
|
RETURN_IF_FAILED(HRESULT_FROM_WIN32(ERROR_INVALID_FUNCTION));
|
||||||
}
|
}
|
||||||
|
|
||||||
RETURN_IF_FAILED(m_pfnAspNetCoreCreateApplication(m_pServer, pHttpContext, struExeLocation.QueryStr(), &pApplication));
|
RETURN_IF_FAILED(m_pfnAspNetCoreCreateApplication(m_pServer, pHttpContext->GetApplication(), &pApplication));
|
||||||
|
pApplication->SetParameter(L"InProcessExeLocation", struExeLocation.QueryStr());
|
||||||
m_pApplication = pApplication;
|
m_pApplication = pApplication;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,16 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
SetParameter(
|
||||||
|
_In_ LPCWSTR pzName,
|
||||||
|
_In_ LPCWSTR pzValue)
|
||||||
|
override
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(pzName);
|
||||||
|
UNREFERENCED_PARAMETER(pzValue);
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
volatile APPLICATION_STATUS m_status = APPLICATION_STATUS::UNKNOWN;
|
volatile APPLICATION_STATUS m_status = APPLICATION_STATUS::UNKNOWN;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,4 +46,10 @@ public:
|
||||||
CreateHandler(
|
CreateHandler(
|
||||||
_In_ IHttpContext *pHttpContext,
|
_In_ IHttpContext *pHttpContext,
|
||||||
_Out_ IREQUEST_HANDLER **pRequestHandler) = 0;
|
_Out_ IREQUEST_HANDLER **pRequestHandler) = 0;
|
||||||
|
|
||||||
|
virtual
|
||||||
|
VOID
|
||||||
|
SetParameter(
|
||||||
|
_In_ LPCWSTR pzName,
|
||||||
|
_In_ LPCWSTR pzValue) = 0;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -82,13 +82,11 @@ BOOL APIENTRY DllMain(HMODULE hModule,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO remove pHttpContext from the CreateApplication call.
|
|
||||||
HRESULT
|
HRESULT
|
||||||
__stdcall
|
__stdcall
|
||||||
CreateApplication(
|
CreateApplication(
|
||||||
_In_ IHttpServer *pServer,
|
_In_ IHttpServer *pServer,
|
||||||
_In_ IHttpContext *pHttpContext,
|
_In_ IHttpApplication *pHttpApplication,
|
||||||
_In_ PCWSTR pwzExeLocation,
|
|
||||||
_Out_ IAPPLICATION **ppApplication
|
_Out_ IAPPLICATION **ppApplication
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
@ -101,7 +99,7 @@ CreateApplication(
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
hr = REQUESTHANDLER_CONFIG::CreateRequestHandlerConfig(pServer, pHttpContext->GetApplication(), &pConfig);
|
hr = REQUESTHANDLER_CONFIG::CreateRequestHandlerConfig(pServer, pHttpApplication, &pConfig);
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
{
|
{
|
||||||
goto Finished;
|
goto Finished;
|
||||||
|
|
@ -111,12 +109,6 @@ CreateApplication(
|
||||||
|
|
||||||
pConfig = NULL;
|
pConfig = NULL;
|
||||||
|
|
||||||
hr = pApplication->Initialize(pwzExeLocation);
|
|
||||||
if (FAILED(hr))
|
|
||||||
{
|
|
||||||
goto Finished;
|
|
||||||
}
|
|
||||||
|
|
||||||
*ppApplication = pApplication;
|
*ppApplication = pApplication;
|
||||||
}
|
}
|
||||||
catch (std::bad_alloc&)
|
catch (std::bad_alloc&)
|
||||||
|
|
|
||||||
|
|
@ -37,14 +37,6 @@ IN_PROCESS_APPLICATION::IN_PROCESS_APPLICATION(
|
||||||
m_status = APPLICATION_STATUS::STARTING;
|
m_status = APPLICATION_STATUS::STARTING;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT
|
|
||||||
IN_PROCESS_APPLICATION::Initialize(
|
|
||||||
PCWSTR pDotnetExeLocation
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return m_struExeLocation.Copy(pDotnetExeLocation);
|
|
||||||
}
|
|
||||||
|
|
||||||
IN_PROCESS_APPLICATION::~IN_PROCESS_APPLICATION()
|
IN_PROCESS_APPLICATION::~IN_PROCESS_APPLICATION()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,11 +23,6 @@ public:
|
||||||
|
|
||||||
~IN_PROCESS_APPLICATION();
|
~IN_PROCESS_APPLICATION();
|
||||||
|
|
||||||
HRESULT
|
|
||||||
Initialize(
|
|
||||||
PCWSTR pDotnetExeLocation
|
|
||||||
);
|
|
||||||
|
|
||||||
__override
|
__override
|
||||||
VOID
|
VOID
|
||||||
ShutDown();
|
ShutDown();
|
||||||
|
|
@ -54,6 +49,19 @@ public:
|
||||||
_Out_ IREQUEST_HANDLER **pRequestHandler)
|
_Out_ IREQUEST_HANDLER **pRequestHandler)
|
||||||
override;
|
override;
|
||||||
|
|
||||||
|
VOID
|
||||||
|
SetParameter(
|
||||||
|
_In_ LPCWSTR pzName,
|
||||||
|
_In_ LPCWSTR pzValue)
|
||||||
|
override
|
||||||
|
{
|
||||||
|
const auto exeLocationParameterName = L"InProcessExeLocation";
|
||||||
|
if (_wcsicmp(pzName, exeLocationParameterName) == 0)
|
||||||
|
{
|
||||||
|
m_struExeLocation.Copy(pzValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Executes the .NET Core process
|
// Executes the .NET Core process
|
||||||
HRESULT
|
HRESULT
|
||||||
ExecuteApplication(
|
ExecuteApplication(
|
||||||
|
|
@ -170,11 +178,6 @@ private:
|
||||||
// used in testing
|
// used in testing
|
||||||
static hostfxr_main_fn s_fMainCallback;
|
static hostfxr_main_fn s_fMainCallback;
|
||||||
|
|
||||||
VOID
|
|
||||||
SetStdOut(
|
|
||||||
VOID
|
|
||||||
);
|
|
||||||
|
|
||||||
static
|
static
|
||||||
VOID
|
VOID
|
||||||
ExecuteAspNetCoreProcess(
|
ExecuteAspNetCoreProcess(
|
||||||
|
|
|
||||||
|
|
@ -260,25 +260,22 @@ BOOL APIENTRY DllMain(HMODULE hModule,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO remove pHttpContext from the CreateApplication call.
|
|
||||||
HRESULT
|
HRESULT
|
||||||
__stdcall
|
__stdcall
|
||||||
CreateApplication(
|
CreateApplication(
|
||||||
_In_ IHttpServer *pServer,
|
_In_ IHttpServer *pServer,
|
||||||
_In_ IHttpContext *pHttpContext,
|
_In_ IHttpApplication *pHttpApplication,
|
||||||
_In_ PCWSTR pwzExeLocation,
|
|
||||||
_Out_ IAPPLICATION **ppApplication
|
_Out_ IAPPLICATION **ppApplication
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
IAPPLICATION *pApplication = NULL;
|
IAPPLICATION *pApplication = NULL;
|
||||||
REQUESTHANDLER_CONFIG *pConfig = NULL;
|
REQUESTHANDLER_CONFIG *pConfig = NULL;
|
||||||
UNREFERENCED_PARAMETER(pwzExeLocation);
|
|
||||||
|
|
||||||
// Initialze some global variables here
|
// Initialze some global variables here
|
||||||
InitializeGlobalConfiguration(pServer);
|
InitializeGlobalConfiguration(pServer);
|
||||||
|
|
||||||
hr = REQUESTHANDLER_CONFIG::CreateRequestHandlerConfig(pServer, pHttpContext->GetApplication(), &pConfig);
|
hr = REQUESTHANDLER_CONFIG::CreateRequestHandlerConfig(pServer, pHttpApplication, &pConfig);
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
{
|
{
|
||||||
return hr;
|
return hr;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
|
||||||
#include "inprocessapplication.h"
|
#include "inprocessapplication.h"
|
||||||
#include "fakeclasses.h"
|
#include "fakeclasses.h"
|
||||||
|
|
||||||
|
|
@ -18,7 +19,7 @@ namespace InprocessTests
|
||||||
IN_PROCESS_APPLICATION *app = new IN_PROCESS_APPLICATION(server, requestHandlerConfig);
|
IN_PROCESS_APPLICATION *app = new IN_PROCESS_APPLICATION(server, requestHandlerConfig);
|
||||||
{
|
{
|
||||||
std::wstring exePath(L"hello");
|
std::wstring exePath(L"hello");
|
||||||
app->Initialize(exePath.c_str());
|
app->SetParameter(L"InProcessExeLocation", exePath.c_str());
|
||||||
}
|
}
|
||||||
ASSERT_STREQ(app->QueryExeLocation(), L"hello");
|
ASSERT_STREQ(app->QueryExeLocation(), L"hello");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue