Aji*_*ith 5 windows-services worker-process appsettings .net-core asp.net-core
我有一个 .Net 核心工作服务,它作为 Windows 服务运行。该服务使用 appsettings.json 文件作为配置信息。使用SC CREATE命令安装服务后,服务失败。
在事件查看器中,我发现了错误,它找不到文件C:\Windows\System32\appsettings.json。我的服务文件放置在不同的文件夹中c:\Services\,而不是查看该位置,该服务正在查找 System32 文件夹中的文件。
配置注册如下。
var configBuilder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json");
var configuration = configBuilder.Build();
services.AddSingleton(configuration);
Run Code Online (Sandbox Code Playgroud)
如何让服务查看本地文件夹?
那是因为当前目录C:\Windows\System32在运行时更改为。您可以通过Assembly.GetExecutingAssembly(). 例如:
var configBuilder = new ConfigurationBuilder()
.SetBasePath( Path.GetDirectoryName( Assembly.GetExecutingAssembly().Location))
.AddJsonFile("appsettings.json");
var configuration = configBuilder.Build();
Run Code Online (Sandbox Code Playgroud)
I\xc2\xb4ve 成功使用Windows 服务中的 Host ASP.NET Core中的文档
\n简而言之,您应该只添加.UseWindowsService()配置构建器步骤,如下所示:
Host.CreateDefaultBuilder(args)\n .UseWindowsService()\n .ConfigureAppConfiguration((hostContext, configuration) => \n {\n //...set your configurations here\n })\n .ConfigureServices((hostContext, services) =>\n {\n //...configure you services here\n }\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2922 次 |
| 最近记录: |