按照答案:\n .NET Core 3 Worker 服务设置依赖注入
\n\n我可以在 Worker.cs 类的“调试”或“发布”中获取设置\n但是当部署为 Windows 服务时,此值返回为 null
\n\n工人.cs
\n\npublic class Worker : BackgroundService\n{\n private readonly ILogger<Worker> _logger;\n private readonly ServiceSettings _serviceSettings;\n private readonly ServiceConfigurations _serviceConfigurations;\n\n public Worker(ILogger<Worker> logger, IOptions<ServiceConfigurations> serviceConfigurations, IOptions<ServiceSettings> serviceSettings) \n {\n _logger = logger;\n _serviceConfigurations = serviceConfigurations.Value;\n\n _logger.LogInformation($"Worker running at: {DateTime.Now}");\n _serviceSettings = serviceSettings.Value;\n\n string retornoPathLog = null;\n string PathLog = _serviceSettings.PathLog;\n\n if (!Directory.Exists(PathLog))\n {\n retornoPathLog = "Diret\xc3\xb3rio de LOG " + PathLog;\n Directory.CreateDirectory(PathLog);\n }\n\n //Configure Serilo for Logging\n Log.Logger = new LoggerConfiguration()\n .MinimumLevel.Information()\n .Enrich.FromLogContext()\n .WriteTo.File(PathLog + "log.txt", rollingInterval: RollingInterval.Day)\n .CreateLogger();\n\n if (string.IsNullOrEmpty(retornoPathLog) == false)\n {\n Log.Information("[WFoneService - Watch Event] " + retornoPathLog);\n }\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n应用程序设置.json:
\n\n{\n "ConnectionStrings": {\n "WFoneConnection": ""\n },\n "ServiceConfigurations": {\n "UrlSignalrNotification": "urlValue",\n "WatchIp": "ipValue",\n "WatchPort": "portValue"\n },\n "ServiceSettings": {\n "PathLog": "C:\\\\Log\\\\"\n },\n "Logging": {\n "LogLevel": {\n "Default": "Information",\n "Microsoft": "Warning",\n "Microsoft.Hosting.Lifetime": "Information"\n }\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n
有几种方法可以处理这个问题。
dotnet new worker
<Project Sdk="Microsoft.NET.Sdk.Worker">
<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
如果您有一个现有项目,我建议#2 将您的 csproj 转换为我们的 Worker Sdk,或者,如果创建一个新项目很简单,请使用#1。#3 是一个可怕的黑客,只是将 appsettings.json 文件复制到输出中,我不推荐这样做。
归档时间: |
|
查看次数: |
7128 次 |
最近记录: |