Создано приложение ASP. NET core 3.1, размещенное внутри службы windows, использующей HTTP.SYS, и все работает нормально. Мой метод CreateHostBuilder запускается следующим образом:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureAppConfiguration((context, config) =>
{
// configure the app here.
config.AddJsonFile("TEST.json");
})
, и файл «TEST. json» правильно найден и прочитан из папки содержимого root (папка, содержащая windows service exe и другие сборки). Однако, если я попытаюсь опубликовать приложение в виде одного файла (со всем остальным)
введите описание изображения здесь
загрузка файла «TEST. json» завершается неудачно со следующей ошибкой, как если бы содержимое root не было установлено там, где находится исполняемый файл службы windows (обратите внимание на полный путь к файлу ожидается 'C: \ Windows \ ServiceProfiles \ LocalService \ AppData \ Local \ Temp.net \ TestNetCore \ 544bgjpl.0mf \ TEST. json')
Application: TestNetCore.exe
CoreCLR Version: 4.700.20.26901
.NET Core Version: 3.1.5
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException: The configuration file 'TEST.json' was not found and is not optional. The physical path is 'C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp\.net\TestNetCore\544bgjpl.0mf\TEST.json'.
at Microsoft.Extensions.Configuration.FileConfigurationProvider.HandleException(ExceptionDispatchInfo info)
at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load()
at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
at Microsoft.Extensions.Hosting.HostBuilder.BuildAppConfiguration()
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at TestNetCore.Program.Main(String[] args)
Любая идея, почему это происходит?