From a26bb676e074d6b327012859f3d834d9b3c9c2e4 Mon Sep 17 00:00:00 2001 From: Claudia Murialdo Date: Tue, 31 Jan 2023 10:33:45 -0300 Subject: [PATCH 1/2] Support starting GxNetCoreStartup.exe with double click on web\bin directory. --- .../src/dotnetcore/GxNetCoreStartup/Startup.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/dotnet/src/dotnetcore/GxNetCoreStartup/Startup.cs b/dotnet/src/dotnetcore/GxNetCoreStartup/Startup.cs index 7b6531cb9..d004bf2a1 100644 --- a/dotnet/src/dotnetcore/GxNetCoreStartup/Startup.cs +++ b/dotnet/src/dotnetcore/GxNetCoreStartup/Startup.cs @@ -50,6 +50,11 @@ public static void Main(string[] args) if (args.Length > 3 && Uri.UriSchemeHttps.Equals(args[3], StringComparison.OrdinalIgnoreCase)) schema = Uri.UriSchemeHttps; } + else + { + LocatePhysicalLocalPath(); + + } if (port == DEFAULT_PORT) { BuildWebHost(null).Run(); @@ -66,6 +71,7 @@ public static void Main(string[] args) Console.Read(); } } + public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .ConfigureLogging(logging => logging.AddConsole()) @@ -84,6 +90,14 @@ static IWebHost BuildWebHostPort(string[] args, string port, string schema) .UseStartup() .Build(); } + private static void LocatePhysicalLocalPath() + { + string startup = FileUtil.GetStartupDirectory(); + string startupParent = Directory.GetParent(startup).FullName; + if (startup == Startup.LocalPath && !File.Exists(Path.Combine(startup, Startup.APP_SETTINGS)) && File.Exists(Path.Combine(startupParent, Startup.APP_SETTINGS))) + Startup.LocalPath = startupParent; + } + } public static class GXHandlerExtensions @@ -108,6 +122,7 @@ public class Startup const long DEFAULT_MAX_FILE_UPLOAD_SIZE_BYTES = 528000000; public static string VirtualPath = string.Empty; public static string LocalPath = Directory.GetCurrentDirectory(); + internal static string APP_SETTINGS = "appsettings.json"; const string UrlTemplateControllerWithParms = "controllerWithParms"; const string RESOURCES_FOLDER = "Resources"; @@ -348,7 +363,7 @@ public void Configure(IApplicationBuilder app, Microsoft.AspNetCore.Hosting.IHos OnPrepareResponse = s => { var path = s.Context.Request.Path; - if (path.HasValue && path.Value.IndexOf("/appsettings.json", StringComparison.OrdinalIgnoreCase)>=0) + if (path.HasValue && path.Value.IndexOf($"/{APP_SETTINGS}", StringComparison.OrdinalIgnoreCase)>=0) { s.Context.Response.StatusCode = 401; s.Context.Response.Body = Stream.Null; From e2a4ed3ef4e7fc081406fbd4f28036bc0c562723 Mon Sep 17 00:00:00 2001 From: cmurialdo Date: Sat, 4 Feb 2023 15:05:10 -0300 Subject: [PATCH 2/2] Setup ContentRoot also so appsettings.json is found. --- dotnet/src/dotnetcore/GxNetCoreStartup/Startup.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dotnet/src/dotnetcore/GxNetCoreStartup/Startup.cs b/dotnet/src/dotnetcore/GxNetCoreStartup/Startup.cs index d004bf2a1..99cac5608 100644 --- a/dotnet/src/dotnetcore/GxNetCoreStartup/Startup.cs +++ b/dotnet/src/dotnetcore/GxNetCoreStartup/Startup.cs @@ -76,6 +76,7 @@ public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .ConfigureLogging(logging => logging.AddConsole()) .UseStartup() + .UseContentRoot(Startup.LocalPath) .Build(); public static IWebHost BuildWebHostPort(string[] args, string port) @@ -88,6 +89,7 @@ static IWebHost BuildWebHostPort(string[] args, string port, string schema) .ConfigureLogging(logging => logging.AddConsole()) .UseUrls($"{schema}://*:{port}") .UseStartup() + .UseContentRoot(Startup.LocalPath) .Build(); } private static void LocatePhysicalLocalPath()