FileNotFoundException относительно System.Diagnostics.EventLog DLL при запуске простейшей возможной службы Windows с .NeC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 FileNotFoundException относительно System.Diagnostics.EventLog DLL при запуске простейшей возможной службы Windows с .Ne

Сообщение Anonymous »

Я уже разработал множество служб Windows в .NET 4.x, но .NET Core 8 использую впервые.
Program.cs:
using MyService;

IHost host = Host.CreateDefaultBuilder(args)
.UseWindowsService(options => {
options.ServiceName = "MyService";
})
.ConfigureServices((hostContext, services) => {
services.AddHostedService();
})
.Build();
await host.RunAsync();

MyWorker.cs:
namespace MyService;

public class MyWorker : BackgroundService
{
private readonly ILogger _logger;

public MagSageWorker(ILogger logger)
{
_logger = logger;
}

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
if (_logger.IsEnabled(LogLevel.Information))
{
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
}
await Task.Delay(1000, stoppingToken);
}
}
}

Каждый раз получаю это исключение:

Приложение: MyService.exe

Версия CoreCLR: 8.0.724.31311

Версия .NET: 8.0.7
Описание: Процесс был завершен из-за необработанного исключения.
Информация об исключении: System.IO.FileNotFoundException: не удалось загрузить файл или сборку «System.Diagnostics.EventLog, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51». Указанное описание недоступно.

Имя файла: 'System.Diagnostics.EventLog, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
at Microsoft.Extensions.Logging.EventLog.EventLogLogger..ctor(имя строки, настройки EventLogSettings, IExternalScopeProvider externalScopeProvider)
в Microsoft.Extensions.Logging.EventLog.EventLogLoggerProvider.CreateLogger(имя строки)
в Microsoft.Extensions .Logging.LoggerInformation..ctor(поставщик ILoggerProvider, категория String)
в Microsoft.Extensions.Logging.LoggerFactory.CreateLoggers(имя категории String)
в Microsoft.Extensions.Logging.LoggerFactory.CreateLogger(имя категории String)
в Microsoft.Extensions.Logging.Logger1..ctor(ILoggerFactory factory) at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor) at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span1 copyOfArgs, BindingFlags ignoreAttr)
at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags ignoreAttr, Binderbinder, параметры Object[], CultureInfo Culture)
at System.Reflection.RuntimeConstructorInfo .Invoke(BindingFlags ignoreAttr, связыватель Binder, параметры Object[], культура CultureInfo)
в Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite конструкторCallSite, контекст RuntimeResolverContext)
в Microsoft.Extensions.DependencyInjection .ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, аргумент TArgument)
в Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite конструкторCallSite, контекст RuntimeResolverContext)
в Microsoft.Extensions.DependencyInjection.ServiceLookup. CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, аргумент TArgument)
в Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, область ServiceProviderEngineScope)
в Microsoft.Extensions.DependencyInjection.ServiceProvider. CreateServiceAccessor(ServiceIdentifier serviceIdentifier)
в System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func2 valueFactory)
в Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
в Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
в Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(поставщик IServiceProvider, тип serviceType)
в Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](поставщик IServiceProvider)
в Microsoft.Extensions.Hosting.HostBuilder .c__DisplayClass35_0.b__2(IServiceProvider _)
в Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite FactoryCallSite, RuntimeResolverContext context)
в Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, аргумент TArgument)
в Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, область ServiceProviderEngineScope)
в Microsoft.Extensions.DependencyInjection.ServiceProvider. CreateServiceAccessor(ServiceIdentifier serviceIdentifier)
в System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func2 valueFactory)
в Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
в Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
в Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(поставщик IServiceProvider, тип serviceType)
в Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](поставщик IServiceProvider)
в Microsoft.Extensions.Hosting.HostBuilder .ResolveHost(IServiceProvider serviceProvider, DiagnosticListener DiagnosticListener)
в Microsoft.Extensions.Hosting.HostBuilder.Build()
в Program.$(String[] args) в C:\Users\MyUsername\source\repos \MySolution\MyService\Program.cs:строка 4
at Program.(String[] args)

Я попробовал несколько решений, найденных в Интернете. , но абсолютно никакой разницы:
  • Обновление всех зависимостей
  • Добавление System.Diagnostics.EventLog вручную в проект
  • Размещение System.Diagnostics.EventLog.dll в двоичной папке
  • Принудительное использование System.Diagnostics.EventLog версия в файле .csproj
  • и т. д.
У меня заканчиваются подсказки, чтобы найти решение, поэтому мне нужна ваша помощь.
Спасибо.

Изменить 1: >
MyService.csproj:



net8.0-windows
enable
enable
dotnet-MyService-guid-removed










Подробнее здесь: https://stackoverflow.com/questions/787 ... starting-t
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»