【发布时间】:2020-10-11 08:37:32
【问题描述】:
在使用 HTTP.SYS 的 Windows 服务中创建了一个自托管的 ASP.NET 核心 3.1 应用程序,并且一切正常。我的 CreateHostBuilder 方法开始如下
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureAppConfiguration((context, config) =>
{
// configure the app here.
config.AddJsonFile("TEST.json");
})
并且“TEST.json”文件已正确找到并从内容根文件夹(包含 Windows 服务 exe 和其他程序集的文件夹)中读取。但是,如果我尝试将应用程序作为单个文件发布(其他一切都相同)
“TEST.json”文件加载失败并出现以下错误,好像内容根目录未设置为 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)
知道为什么会这样吗?
【问题讨论】: