ASP.NET 4.6.2 + EF.Core = chyba IHttpControllerActivator rubrika: Programování: .Net

6 pilif
položil/-a 26.11.2018

Zdravím ve spolek,
máme aplikaci WebAPI napsanou v ASP.NET 4.6.2 doposud používající EF 6.

Nyní se pokoušíme postupně přecházet na .NET Core. Začali jsme tím, že jsme DAL vrstvu převedli s EF6 na EF.Core. Tuto převedenou knihovnu (projekt) jsme pak začlenili do stávající ASP.NET 4.6.2 aplikace.

Na vývojových PC (Win10 + VS2017 + IIS) se vše rozběhlo bez problémů. Pokud ovšem aplikaci vypublikuji na WindowsServer 2016 a tam jí spustím, tak dostanu chybu:

System.TypeLoadException: 'Method 'Create' in type 'ActivControll.CompositionRoot' from assembly 'ActivControll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.'

V aplikaci používáme vlastní implementaci IHttpControllerActivator kde závislosti řešíme pomocí Windsor Castle.

Pokud EF.Core vyhodím a vrátím zpět EF6 (dystraním balíčky s Core), tak se vše zase vpořádku rozběhne.

Napadá Vás něco?

Díky.

odkaz Vyřešeno
16 harrison314
odpověděl/-a 27.11.2018

Priznam sa, ze s takouto chybou som sa este nestretol.
Ak to u teba ide a na serveri nie, tak musis hladat rozdiely, napriklad mas na serveri nainstalovane .Net Core spravnej verzie? Rovnaky .net Framework?

Skus si pridat logovanie nacitavanych assemblies cez AppDomain.AssemblyLoad, alebo pozri na toto https://docs.microsoft.com/en-us/dotnet/framework/tools/fuslogvw-exe-assembly-binding-log-viewer.

Pri net core som siel cestou revolucie, nie evolucie, tak som ich nikdy nekombinoval...

Komentáře

  • pilif : Zkusim teda porovnat assembly. I když myslím, že by to mělo být stejné. Na tom Windowsserveru jsem zkusmo nainstaloval VS2017, založil nový projekt NET 4.6.2 a přidal do něj EF.Core. V tu chvíli jsem získal uvedenou chybu. :( 27.11.2018
  • harrison314 : Treba si pozriet, ktore Assembly to nacitava. A na zaklade toho sa ocpichnut dalej. 27.11.2018
  • pilif : Takže měl jsi pravdu. Načítali se odlišné verze různých knihoven. Zatím jsem to vyřešil tak, že jsem to explicitně nabindoval přímo ve Web.config. Jako dočasné řešení než kompletně přemigrujeme na ASP.NET Core to snad nebude dělat problémy. Díky 27.11.2018

Pro plný přístup na Devel.cz se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.