Этот aspnetcorev2.dll на самом деле является модулем ASP.NET Core 2.0, обычно называемым ANCM. Этот модуль нуждается в некоторой настройке и настройке, если ASP.NET Core 2.0 / 2.1 / 2.2 будет работать поверх IIS и использовать IIS в качестве основного прокси-сервера перед переходом на оригинальный движок Kestrel ASP.NET Core, а также вызываться модель.
Это важно, на других платформах, кроме Windows, все запросы направляются непосредственно в Kestrel и обслуживаются непосредственно Kestrel. Поэтому в IIS необходимо выполнить специальную настройку конфигурации, чтобы использовать Kestrel в IIS.
Для получения дополнительной информации о ANCM на IIS, пожалуйста, обратитесь к официальным документам Microsoft:
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/aspnet-core-module?view=aspnetcore-2.2
ПРИМЕЧАНИЕ: хотя эта страница предназначена для .NET Core 2.2, она по-прежнему применима для .NET 2.0 / 2.1.
Исходя из вашей ошибки, есть вероятность, что DLL-библиотека ANCM находится вне досягаемости результирующей DLL вашего приложения. Убедитесь, что файлы ANCM dll находятся в вашей результирующей скомпилированной папке, а не снаружи. Также убедитесь, что вы используете RTM или официальную версию .NET Core 2.0 / 2.1 / 2.2 вместо ежедневной сборки, поскольку ежедневная сборка .NET Core 2.0 / 2.1 / 2.2 может привести к некоторым странным ошибкам, поскольку их полное распространение DLL-библиотеки времени выполнения могут быть не полностью согласованными.
Для получения дополнительной информации об устранении неполадок ANCM в ASP.NET Core 2.x, пожалуйста, обратитесь к этим официальным документам MS:
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/troubleshoot?view=aspnetcore-2.2
ОБНОВЛЕНИЕ № 1:
Основываясь на комментариях ниже, я добавляю эту дополнительную информацию:
Вы должны очистить все кэши nuget на своем компьютере, восстановить и снова запустить MSBUILD. Если вы используете .NET Core 2.1 в качестве платформы для своего приложения ASP.NET Core 2.1, то если вы устанавливаете .NET Core 2.2 без обновления ссылок вашего приложения до v2.2, есть вероятность, что ссылки все еще перепутаны.
Или для лучшей практики используйте файл global.json
для строгой компиляции приложения, чтобы всегда использовать .NET Core 2.1 SDK с определенной версией, независимо от того, какая последняя версия .NET Core SDK установлена на вашем компьютере.
Это также важно, потому что по умолчанию компилирует приложение .NET Core всегда будет пытаться использовать последний SDK, доступный на вашем компьютере, а предыдущая существующая более старая версия будет игнорироваться.
Настройка global.json
описана здесь:
https://docs.microsoft.com/en-us/dotnet/core/tools/global-json