当我试图启动部署在.Net上的IIS应用程序时,日志文件中出现了以下错误。根据许多帖子( IIS中的配置更改等)尝试了许多解决方法,但仍然无法解决这个问题。特别尝试添加日志以使用此链接查找特定丢失的dll,该链接与.Net Core ReflectionTypeLoadException in ASP.NET Core MVC application相关
但它没有记录与此异常相关的任何特定日志消息。日志中只有上面提到的错误。
这是一个.Net Core应用程序(NetCore2.0与VisualStudio2017)。部署在Windows 10和Windows 2012 R2中的IIS上。日志文件中也存在相同的错误。
我在这里发现的主要问题是:这个项目添加了对SOAP服务(asmx服务)的引用。删除此服务引用时,不会出现此类错误。似乎应用程序试图从其他地方获取相关的dll,而不是从已发布的文件夹中获取。可能是GAC的。但是也将与"system.servicemodel.*“相关的dll复制到GAC (这些是在Visual中通过连接服务添加服务引用时自动添加的dll(从Nuget) )。
只有在部署后(在IIS上)才会发生这种情况。当从源代码运行此应用程序时,这很好。没有这样的错误。我不确定这些新版本的.Net核心在部署后是否不支持asmx服务。
感谢任何解决这个问题的帮助,因为我们需要这个项目中的asmx服务引用。谢谢。
2018-10-01T10:10:42.6383743+01:00HLH7FMNJ4U50:00000002错误连接id“0HLH7FMNJ4U50”,请求id“0HLH7FMNJ4U50:00000002”:应用程序引发一个未处理的异常。(560 E7d32) System.Reflection.ReflectionTypeLoadException:无法加载一个或多个请求类型。检索LoaderExceptions属性以获得更多信息。(在System.Reflection.RuntimeModule.GetTypes(RuntimeModule模块)在System.Reflection.RuntimeAssembly.get_DefinedTypes()的Microsoft.AspNetCore.Mvc.Controllers.ControllerFeatureProvider.PopulateFeature(IEnumerable1部件,( Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager.PopulateFeatureTFeature at Microsoft.AspNetCore.Mvc.Internal.ControllerActionDescriptorProvider.GetControllerTypes() at Microsoft.AspNetCore.Mvc.Internal.ControllerActionDescriptorProvider.BuildModel() at Microsoft.AspNetCore.Mvc.Internal.ControllerActionDescriptorProvider.GetDescriptors() at Microsoft.AspNetCore.Mvc.Internal.ControllerActionDescriptorProvider.OnProvidersExecuting(ActionDescriptorProviderContext context) Microsoft.AspNetCore.Mvc.Internal.ActionDescriptorCollectionProvider.UpdateCollection() at Microsoft.AspNetCore.Mvc.Internal.ActionDescriptorCollectionProvider.get_ActionDescriptors() at Microsoft.AspNetCore.Mvc.Internal.AttributeRoute.GetTreeRouter() at( Microsoft.AspNetCore.Mvc.Internal.AttributeRoute.RouteAsync(RouteContext上下文)在Microsoft.AspNetCore.Routing.RouteCollection.d__9.MoveNext() -从抛出异常的前一个位置开始的堆栈跟踪-在Microsoft.AspNetCore.Builder.RouterMiddleware.d__4.MoveNext()上抛出异常的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task任务-从抛出异常的前一个位置开始的堆栈跟踪的结束-在System.Runtime.ExceptionServices.ExceptionDispatchInfo.。在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task任务中抛出() Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware.d__11.MoveNext() --从抛出异常的前一个位置抛出堆栈跟踪--在Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.d__3.MoveNext()上抛出异常的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() --从抛出异常的前一个位置抛出堆栈跟踪的结束。Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task任务)在Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Frame1.d__2.MoveNext() 2018-10-01T10:10:42.6385488+01:00HLH7FMNJ4U50:00000002 INF请求在11.3774ms 500 (791a596a)中完成
PS:我可以解决这个问题。我在下面的评论中添加了我找到的解决方案。
发布于 2018-10-21 13:12:15
我可以通过将.Net标准项目包含到.Net Core2.0项目(向.Net核心项目添加了.Net标准项目引用)来解决这个问题。
https://stackoverflow.com/questions/52605510
复制相似问题