我将一个web应用程序从.NET核心5迁移到了.NET核心6。当应用程序启动时,我在Windows查看器中收到一条错误消息,指示它找不到System.Diagnostics.EventLog Version=6.0.0.0.
完整堆栈:
Application: w3wp.exe
CoreCLR Version: 6.0.21.52210
.NET Version: 6.0.0
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException: Could not load file or assembly 'System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified.
File name: 'System.Diagnostics.EventLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
at Microsoft.Extensions.Logging.EventLog.EventLogSettings.CreateDefaultEventLog
at Microsoft.Extensions.Logging.EventLog.EventLogSettings.get_EventLog
at Microsoft.Extensions.Logging.EventLog.EventLogLogger..ctor(String name, EventLogSettings settings, IExternalScopeProvider externalScopeProvider)
at Microsoft.Extensions.Logging.EventLog.EventLogLoggerProvider.CreateLogger(String name)
at Microsoft.Extensions.Logging.LoggerFactory.CreateLoggers(String categoryName)
at Microsoft.Extensions.Logging.LoggerFactory.CreateLogger(String categoryName)
at Microsoft.Extensions.Logging.Logger`1..ctor(ILoggerFactory factory)
at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(Type serviceType)
at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Microsoft.Extensions.Hosting.HostBuilder.<CreateServiceProvider>b__28_2(IServiceProvider _)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(Type serviceType)
at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at MyApp.Web.Program.Main(String[] args) in F:\MyApp\web\MyAppWeb\Program.cs:line 16
我甚至试着把System.Diagnostics.EventLog作为一个包加入nuget公司,认为这可能会成功,但它没有.
跑步:
OS: Windows 10 build 19044.1348
IIS: 10.0.19041.1
我还在我的app.config中添加了这一点,以尝试强制使用旧版本:
<runtime>
<assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.EventLog"
publicKeyToken="cc7b13ffcd2ddd51"
culture="neutral" />
<bindingRedirect oldVersion="6.0.0.0" newVersion="5.0.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
它仍然给出相同的错误,试图找到6.0.0.0。
以下是我安装的所有软件包:
System.Diagnostics.EventLog {6.0.0}
System.Drawing.Common {6.0.0}
Microsoft.Extensions.Logging.Abs... {6.0.0}
Syncfusion.Licensing {19.3.0.57}
System.Security.Principal.Windows {5.0.0}
Syncfusion.EJ2.AspNet.Core {19.3.0.57}
Microsoft.Extensions.Configurati... {6.0.0}
Newtonsoft.Json {13.0.1}
Microsoft.jQuery.Unobtrusive.Ajax {3.2.6}
Microsoft.Extensions.Configurati... {6.0.0}
Microsoft.Extensions.Configurati... {6.0.0}
Microsoft.AspNetCore.Mvc.Newtons... {6.0.0}
Microsoft.Extensions.Configurati... {6.0.0}
Microsoft.AspNet.Mvc {5.2.7}
Syncfusion.EJ.AspNet.Core {19.3.0.57}
Microsoft.Extensions.PlatformAbs... {1.1.0}
System.Data.SqlClient {4.8.3}
Microsoft.AspNetCore.Session {2.2.0}
Microsoft.Extensions.Configuration {6.0.0}
Syncfusion.Pdf.Net.Core {19.3.0.57}
Microsoft.Extensions.Primitives {6.0.0}
Twilio {5.68.2}
Microsoft.Extensions.Logging {6.0.0}
morelinq {3.3.2}
此外,当我查看服务器上的输出文件夹时,我确实看到了System.Diagnostics.EventLog:
有什么建议吗?
谢谢!
发布于 2021-12-09 23:18:27
我的包列表中仍然有Microsoft.AspNet.Mvc 5.2.7,这是一个较旧版本的System.Diagnostics.EventLog。一旦我去掉它,它就开始工作了..。
https://stackoverflow.com/questions/70295213
复制相似问题