Flow request trace context to CreateApplication (#1480)
This commit is contained in:
parent
23db53eae6
commit
f2fbd803b9
|
|
@ -31,13 +31,17 @@ public:
|
||||||
|
|
||||||
HRESULT Execute(
|
HRESULT Execute(
|
||||||
_In_ IHttpServer *pServer,
|
_In_ IHttpServer *pServer,
|
||||||
_In_ const IHttpApplication *pHttpApplication,
|
_In_ IHttpContext *pHttpContext,
|
||||||
_Outptr_ IAPPLICATION **pApplication) const noexcept
|
_Outptr_ IAPPLICATION **pApplication) const
|
||||||
{
|
{
|
||||||
std::array<APPLICATION_PARAMETER, 1> parameters {
|
std::array<APPLICATION_PARAMETER, 2> parameters {
|
||||||
{"InProcessExeLocation", m_location.data()}
|
{
|
||||||
|
{"InProcessExeLocation", m_location.data()},
|
||||||
|
{"TraceContext", pHttpContext->GetTraceContext()}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
return m_pfnAspNetCoreCreateApplication(pServer, pHttpApplication, parameters.data(), static_cast<DWORD>(parameters.size()), pApplication);
|
|
||||||
|
return m_pfnAspNetCoreCreateApplication(pServer, pHttpContext->GetApplication(), parameters.data(), static_cast<DWORD>(parameters.size()), pApplication);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ APPLICATION_INFO::CreateHandler(
|
||||||
m_pApplicationFactory = nullptr;
|
m_pApplicationFactory = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
RETURN_IF_FAILED(CreateApplication(*pHttpContext.GetApplication()));
|
RETURN_IF_FAILED(CreateApplication(pHttpContext));
|
||||||
|
|
||||||
RETURN_IF_FAILED(hr = TryCreateHandler(pHttpContext, pHandler));
|
RETURN_IF_FAILED(hr = TryCreateHandler(pHttpContext, pHandler));
|
||||||
}
|
}
|
||||||
|
|
@ -69,8 +69,9 @@ APPLICATION_INFO::CreateHandler(
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT
|
HRESULT
|
||||||
APPLICATION_INFO::CreateApplication(const IHttpApplication& pHttpApplication)
|
APPLICATION_INFO::CreateApplication(IHttpContext& pHttpContext)
|
||||||
{
|
{
|
||||||
|
auto& pHttpApplication = *pHttpContext.GetApplication();
|
||||||
if (AppOfflineApplication::ShouldBeStarted(pHttpApplication))
|
if (AppOfflineApplication::ShouldBeStarted(pHttpApplication))
|
||||||
{
|
{
|
||||||
LOG_INFO(L"Detected app_offline file, creating polling application");
|
LOG_INFO(L"Detected app_offline file, creating polling application");
|
||||||
|
|
@ -85,7 +86,7 @@ APPLICATION_INFO::CreateApplication(const IHttpApplication& pHttpApplication)
|
||||||
const WebConfigConfigurationSource configurationSource(m_pServer.GetAdminManager(), pHttpApplication);
|
const WebConfigConfigurationSource configurationSource(m_pServer.GetAdminManager(), pHttpApplication);
|
||||||
ShimOptions options(configurationSource);
|
ShimOptions options(configurationSource);
|
||||||
|
|
||||||
const auto hr = TryCreateApplication(pHttpApplication, options);
|
const auto hr = TryCreateApplication(pHttpContext, options);
|
||||||
|
|
||||||
if (FAILED_LOG(hr))
|
if (FAILED_LOG(hr))
|
||||||
{
|
{
|
||||||
|
|
@ -130,15 +131,15 @@ APPLICATION_INFO::CreateApplication(const IHttpApplication& pHttpApplication)
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT
|
HRESULT
|
||||||
APPLICATION_INFO::TryCreateApplication(const IHttpApplication& pHttpApplication, const ShimOptions& options)
|
APPLICATION_INFO::TryCreateApplication(IHttpContext& pHttpContext, const ShimOptions& options)
|
||||||
{
|
{
|
||||||
RETURN_IF_FAILED(m_handlerResolver.GetApplicationFactory(pHttpApplication, m_pApplicationFactory, options));
|
RETURN_IF_FAILED(m_handlerResolver.GetApplicationFactory(*pHttpContext.GetApplication(), m_pApplicationFactory, options));
|
||||||
LOG_INFO(L"Creating handler application");
|
LOG_INFO(L"Creating handler application");
|
||||||
|
|
||||||
IAPPLICATION * newApplication;
|
IAPPLICATION * newApplication;
|
||||||
RETURN_IF_FAILED(m_pApplicationFactory->Execute(
|
RETURN_IF_FAILED(m_pApplicationFactory->Execute(
|
||||||
&m_pServer,
|
&m_pServer,
|
||||||
&pHttpApplication,
|
&pHttpContext,
|
||||||
&newApplication));
|
&newApplication));
|
||||||
|
|
||||||
m_pApplication.reset(newApplication);
|
m_pApplication.reset(newApplication);
|
||||||
|
|
|
||||||
|
|
@ -74,10 +74,10 @@ private:
|
||||||
std::unique_ptr<IREQUEST_HANDLER, IREQUEST_HANDLER_DELETER>& pHandler);
|
std::unique_ptr<IREQUEST_HANDLER, IREQUEST_HANDLER_DELETER>& pHandler);
|
||||||
|
|
||||||
HRESULT
|
HRESULT
|
||||||
CreateApplication(const IHttpApplication& pHttpApplication);
|
CreateApplication(IHttpContext& pHttpContext);
|
||||||
|
|
||||||
HRESULT
|
HRESULT
|
||||||
TryCreateApplication(const IHttpApplication& pHttpApplication, const ShimOptions& options);
|
TryCreateApplication(IHttpContext& pHttpContext, const ShimOptions& options);
|
||||||
|
|
||||||
IHttpServer &m_pServer;
|
IHttpServer &m_pServer;
|
||||||
HandlerResolver &m_handlerResolver;
|
HandlerResolver &m_handlerResolver;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue