Add startup event log for ANCM inproc (#1047)
This commit is contained in:
parent
6bed0b7206
commit
36d7c8ec42
|
|
@ -218,6 +218,12 @@ Language=English
|
||||||
%1
|
%1
|
||||||
.
|
.
|
||||||
|
|
||||||
|
Messageid=1032
|
||||||
|
SymbolicName=ASPNETCORE_EVENT_INPROCESS_START_SUCCESS
|
||||||
|
Language=English
|
||||||
|
%1
|
||||||
|
.
|
||||||
|
|
||||||
;
|
;
|
||||||
;#endif // _ASPNETCORE_MODULE_MSG_H_
|
;#endif // _ASPNETCORE_MODULE_MSG_H_
|
||||||
;
|
;
|
||||||
|
|
|
||||||
|
|
@ -51,3 +51,4 @@
|
||||||
#define ASPNETCORE_EVENT_INVALID_PROCESS_PATH_MSG L"Invalid or unknown processPath provided in web.config: processPath = %s, ErrorCode = '0x%x'."
|
#define ASPNETCORE_EVENT_INVALID_PROCESS_PATH_MSG L"Invalid or unknown processPath provided in web.config: processPath = %s, ErrorCode = '0x%x'."
|
||||||
#define ASPNETCORE_EVENT_INPROCESS_RH_MISSING_MSG L"Could not find the assembly '%s' for in-process application. Please confirm the Microsoft.AspNetCore.Server.IIS package is referenced in your application."
|
#define ASPNETCORE_EVENT_INPROCESS_RH_MISSING_MSG L"Could not find the assembly '%s' for in-process application. Please confirm the Microsoft.AspNetCore.Server.IIS package is referenced in your application."
|
||||||
#define ASPNETCORE_EVENT_OUT_OF_PROCESS_RH_MISSING_MSG L"Could not find the assembly '%s' for out-of-process application. Please confirm the assembly is installed correctly for IIS or IISExpress."
|
#define ASPNETCORE_EVENT_OUT_OF_PROCESS_RH_MISSING_MSG L"Could not find the assembly '%s' for out-of-process application. Please confirm the assembly is installed correctly for IIS or IISExpress."
|
||||||
|
#define ASPNETCORE_EVENT_INPROCESS_START_SUCCESS_MSG L"Application '%s' started the coreclr in-process successfully."
|
||||||
|
|
|
||||||
|
|
@ -221,6 +221,11 @@ IN_PROCESS_APPLICATION::SetCallbackHandles(
|
||||||
m_pLoggerProvider->NotifyStartupComplete();
|
m_pLoggerProvider->NotifyStartupComplete();
|
||||||
// Can't check the std err handle as it isn't a critical error
|
// Can't check the std err handle as it isn't a critical error
|
||||||
// Initialization complete
|
// Initialization complete
|
||||||
|
UTILITY::LogEventF(g_hEventLog,
|
||||||
|
EVENTLOG_INFORMATION_TYPE,
|
||||||
|
ASPNETCORE_EVENT_INPROCESS_START_SUCCESS,
|
||||||
|
ASPNETCORE_EVENT_INPROCESS_START_SUCCESS_MSG,
|
||||||
|
m_pConfig->QueryApplicationPhysicalPath()->QueryStr());
|
||||||
SetEvent(m_pInitalizeEvent);
|
SetEvent(m_pInitalizeEvent);
|
||||||
m_fInitialized = TRUE;
|
m_fInitialized = TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
using System;
|
||||||
|
using System.Net;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.AspNetCore.Server.IIS.FunctionalTests.Utilities;
|
||||||
|
using Microsoft.AspNetCore.Testing.xunit;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
|
||||||
|
{
|
||||||
|
public class EventLogTests : IISFunctionalTestBase
|
||||||
|
{
|
||||||
|
[ConditionalFact]
|
||||||
|
public async Task CheckStartupEventLogMessage()
|
||||||
|
{
|
||||||
|
var deploymentParameters = Helpers.GetBaseDeploymentParameters(publish: true);
|
||||||
|
var deploymentResult = await DeployAsync(deploymentParameters);
|
||||||
|
await Helpers.AssertStarts(deploymentResult, "/HelloWorld");
|
||||||
|
|
||||||
|
StopServer();
|
||||||
|
|
||||||
|
EventLogHelpers.VerifyEventLogEvent(TestSink, "Application '.+' started the coreclr in-process successfully.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using Microsoft.Extensions.Logging.Testing;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
|
||||||
|
{
|
||||||
|
public class EventLogHelpers
|
||||||
|
{
|
||||||
|
public static void VerifyEventLogEvent(ITestSink testSink, string expectedRegexMatchString)
|
||||||
|
{
|
||||||
|
var eventLogRegex = new Regex($"Event Log: {expectedRegexMatchString}");
|
||||||
|
Assert.Contains(testSink.Writes, context => eventLogRegex.IsMatch(context.Message));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -4,9 +4,11 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
using Microsoft.AspNetCore.Server.IntegrationTesting;
|
using Microsoft.AspNetCore.Server.IntegrationTesting;
|
||||||
using Microsoft.AspNetCore.Testing;
|
using Microsoft.AspNetCore.Testing;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
|
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
|
||||||
{
|
{
|
||||||
|
|
@ -60,7 +62,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
|
||||||
site = hostingModel == HostingModel.InProcess ? "InProcessWebSite" : "OutOfProcessWebSite";
|
site = hostingModel == HostingModel.InProcess ? "InProcessWebSite" : "OutOfProcessWebSite";
|
||||||
}
|
}
|
||||||
|
|
||||||
return new DeploymentParameters(Helpers.GetTestWebSitePath(site), DeployerSelector.ServerType, RuntimeFlavor.CoreClr, RuntimeArchitecture.x64)
|
return new DeploymentParameters(GetTestWebSitePath(site), DeployerSelector.ServerType, RuntimeFlavor.CoreClr, RuntimeArchitecture.x64)
|
||||||
{
|
{
|
||||||
TargetFramework = Tfm.NetCoreApp22,
|
TargetFramework = Tfm.NetCoreApp22,
|
||||||
ApplicationType = ApplicationType.Portable,
|
ApplicationType = ApplicationType.Portable,
|
||||||
|
|
@ -73,5 +75,13 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
|
||||||
private static string GetWebConfigFile(IISDeploymentResult deploymentResult)
|
private static string GetWebConfigFile(IISDeploymentResult deploymentResult)
|
||||||
=> Path.Combine(deploymentResult.DeploymentResult.ContentRoot, "web.config");
|
=> Path.Combine(deploymentResult.DeploymentResult.ContentRoot, "web.config");
|
||||||
|
|
||||||
|
public static async Task AssertStarts(IISDeploymentResult deploymentResult, string path = "/HelloWorld")
|
||||||
|
{
|
||||||
|
var response = await deploymentResult.RetryingHttpClient.GetAsync(path);
|
||||||
|
|
||||||
|
var responseText = await response.Content.ReadAsStringAsync();
|
||||||
|
|
||||||
|
Assert.Equal("Hello World", responseText);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue