Использование службы ASMX в .Net Core API: System.Reflection.ReflectionTypeLoadException: невозможно загрузить один или несколько запрошенных типов - PullRequest
0 голосов
/ 02 октября 2018

При попытке запустить приложение .Net Core API, развернутое в IIS, появляется ошибка в файле журнала.Пробовал много обходных путей по многим постам (изменения конфигурации в IIS и т. Д.), Но все еще не смог решить эту проблему.Специально пытался добавить журналы, чтобы найти конкретные отсутствующие dll, используя эту ссылку, связанную с .Net Core ReflectionTypeLoadException в приложении ASP.NET Core MVC

  • Создан класс расширения ExceptionCatchMiddleware.
  • Добавил его в метод Configure () в Startup.cs:

Но он не регистрировал никаких особых сообщений журнала, связанных с этим исключением.В журнале присутствует только вышеупомянутая ошибка.

Это приложение .Net Core API (Net Core 2.0 с Visual Studio 2017).Развернуто на IIS в Windows 10 и Windows Server 2012 R2.Та же ошибка есть в файле журнала.

Основная проблема, которую я обнаружил здесь: этот проект добавил ссылку на службу SOAP (службу asmx).Когда эта сервисная ссылка удалена, такой ошибки нет.Кажется, что приложение пытается получить релевантные dll-файлы откуда-то еще, а не из опубликованной папки.Может быть из GAC.Но скопировал dll, относящиеся к "system.servicemodel. *", Также в GAC (это автоматически добавляемые dll (из Nuget) при добавлении этой ссылки на службу через Connected Services в Visual Studio).

Это происходит толькопосле развертывания (на IIS).При запуске этого приложения из исходного кода это работает нормально.Нет такой ошибки.Я не уверен, что эти новые версии .Net Core не поддерживают службы asmx после развертывания.

Благодарим вас за любую помощь в решении этой проблемы, так как нам нужна эта ссылка на службу asmx в этом проекте.Спасибо.

2018-10-01T10: 10: 42.6383743 + 01: 00 0HLH7FMNJ4U50: 00000002 [ERR] Идентификатор соединения "" 0HLH7FMNJ4U50 "", Запросить идентификатор "" 0HLH7FMNJ4U50: 00000002 "" An:необработанное исключение было брошено приложением.(560e7d32) System.Reflection.ReflectionTypeLoadException: невозможно загрузить один или несколько запрошенных типов.Получите свойство LoaderExceptions для получения дополнительной информации.в System.Reflection.RuntimeModule.GetTypes (модуль RuntimeModule) в System.Reflection.RuntimeAssembly.get_DefinedTypes ()в Microsoft.AspNetCore.Mvc.Controllers.ControllerFeatureProvider.PopulateFeature (детали IEnumerable1, функция ControllerFeature) в Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager.PopulateFeature [TFeatureTet.Group.Controller.() в Microsoft.AspNetCore.Mvc.Internal.ControllerActionDescriptorProvider.BuildModel () в Microsoft.AspNetCore.Mvc.Internal.ControllerActionDescriptorProvider.GetDescriptors () в Майкрософт.AspNetCore.Mvc.Insert.ПрезидентыПредприятияПредприятиеПредприятиеПредприятиеПрезидентыПредприятияПредприятиеПредприятиеПредприятиеПредприятиеПрезидентыПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПредприятиеПакет.Mvc.Internal.(Контекст RouteContext) в Microsoft.AspNetCore.Routing.RouteCollection.d__9.MoveNext () --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSugccessAD(Задача) в Microsoft.AspNetCore.Builder.RouterMiddleware.d__4.MoveNext () --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware.d__11.MoveNext () --- Конец трассировки стека из предыдущего местоположения, в котором было сгенерировано исключение --- в System.Service.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.d__3.MoveNext() --- Конец трассировки стека из предыдущего расположения, в котором было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) в Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Frame1.d__2.MoveNext () 2018-10-01T10: 10: 42.6385488 + 01: 00 0HLH7FMNJ4U50: 00000002 [INF] Запрос завершен в 11.3774ms 500 (791a596a)

PS: я мог бы решить эту проблему.Я добавил решение, которое нашел, в комментарии ниже.

1 Ответ

0 голосов
/ 21 октября 2018

Я мог бы решить эту проблему, включив стандартный проект .Net в проект .Net Core 2.0 (добавлена ​​ссылка на стандартный проект .Net для проекта .Net Core).

...