Conversation
| if (WindowsServiceHelpers.IsWindowsService()) | ||
| { | ||
| // Make sure appsettings.json can be found when running as windows service | ||
| Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory); | ||
| } | ||
|
|
||
| var builder = CreateHostBuilder(args); | ||
|
|
||
| // Support running as a windows service | ||
| builder.UseWindowsService(); | ||
|
|
||
| var host = builder.Build(); |
There was a problem hiding this comment.
I think something like this would make more sense:
| if (WindowsServiceHelpers.IsWindowsService()) | |
| { | |
| // Make sure appsettings.json can be found when running as windows service | |
| Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory); | |
| } | |
| var builder = CreateHostBuilder(args); | |
| // Support running as a windows service | |
| builder.UseWindowsService(); | |
| var host = builder.Build(); | |
| var builder = CreateHostBuilder(args); | |
| // Support running as a windows service | |
| if (WindowsServiceHelpers.IsWindowsService()) | |
| { | |
| // Make sure appsettings.json can be found when running as windows service | |
| Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory); | |
| builder.UseWindowsService(); | |
| } | |
| var host = builder.Build(); |
There was a problem hiding this comment.
Hi @seriouz,
Thank you for commenting and proposing improvements.
Wrapping builder.UseWindowsServices() into an "if( IsWindowsService )" is not necessary.
The extension method already checks this internally.
Also if you want to chain it with UseSystemd() it would not make sense, e.g.
builder.UseWindowsService().UseSystemd()
Regards the order when to apply the SetCurrentDirectory(...) code.
I think it needs to happen before the CreateHostBuilder() call (as it was in my code snippet) because otherwise appsettings.json is not found correctly during CreateHostBuilder(...) and e.g. the kestrel URL config in appsettings.json is not applied correctly
Addresses #262