2014-08-28 32 views
6

Rozumiem, że jest wiele takich postów i sam sobie z nimi poradziłem, bez problemu, z wyjątkiem tego czasu. Dzieje się tak dlatego, że nie mogę uzyskać potrzebnych informacji na temat debugowania systemu Windows Azure i mam nadzieję, że ktoś może mi pomóc.Nie można załadować pliku lub zestawu ... Witryna Windows Azure

To wszystko działa doskonale w moim lokalnym środowisku, debugowanie & wydania.

Otrzymuję ten błąd: Nie można załadować pliku lub zespołu "Lib" lub jednej z jego zależności. Podjęto próbę załadowania programu o nieprawidłowym formacie.

Lib istnieje w katalogu, zależy tylko od System.Drawing & mscorlib.

Zazwyczaj po prostu podłączam się do AppDomain.Current.AssemblyResolve lub sprawdzam wyjątek, kiedy jest rzut. Nie mogę tego zrobić z Azure, ponieważ wyjątek zdarza się podczas wstępnego ładowania.

[BadImageFormatException: Could not load file or assembly 'Lib' or one of its dependencies. An attempt was made to load a program with an incorrect format.] 
    System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0 
    System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +34 
    System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +152 
    System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +77 
    System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +16 
    System.Reflection.Assembly.Load(String assemblyString) +28 
    System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +38 

[ConfigurationErrorsException: Could not load file or assembly 'Lib' or one of its dependencies. An attempt was made to load a program with an incorrect format.] 
    System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +736 
    System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +217 
    System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +130 
    System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +170 
    System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +91 
    System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) +284 
    System.Web.Compilation.BuildManager.ExecutePreAppStart() +153 
    System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +521 

[HttpException (0x80004005): Could not load file or assembly 'Lib' or one of its dependencies. An attempt was made to load a program with an incorrect format.] 
    System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9930568 
    System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101 
    System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254 

Czy istnieje sposób na przesłonięcie/utworzenie niestandardowego modułu ładującego zespołu montażowego w celu przechwycenia tego problemu?

Mam całkowitą stratę.

Dzięki

Steve

Odpowiedz

7

Nienawidzę, kiedy to zrobić. Opublikuj pytanie na SO, ponieważ próbuję cały dzień, a potem naprawię to 10 minut później.

Wygląda na to, że przegapiłem kluczową informację, która bardzo pomogłaby.

BadImageFormatException

ten (o ile mogę powiedzieć) jest generowany, gdy istnieją problemy z platformą (architektura) zgodności (x86, x64). Wszystkie moje projekty zostały skompilowane dla "dowolnego procesora" (można znaleźć pod właściwościami projektu> Kompilacja> Platforma docelowa, VS2013).

Jednak mój projekt "Lib" został zbudowany tylko dla x64, a witryna internetowa Azure działała w trybie 32-bitowym, więc nie udało się załadować 64-bitowej biblioteki DLL.

dwie opcje:

  1. skompilować "Lib" dll jako AnyCPU lub 32bit następnie ponownie opublikować
  2. Włączyć Azure strony internetowej do 64 bit.

Nie mam opcji 2 z powodu tego, co robi biblioteka "Lib", potrzebuję jej jako 64-bitowej.

Tak na przyszłość, czy ktoś ma coś takiego, sprawdź następujące elementy:

  1. Azure Platform www (znaleźć pod Konfiguracja> Platformy, na starym portalu)
  2. sprawdzić wszystkie projektu są ustawione dla dowolnego procesora lub zgodnej "platformy (architektury)"

Mam nadzieję, że to pomoże komuś innemu.

Dzięki

Steve

EDIT: Jeśli ktoś ma jakieś bardziej przydatnych informacji, aby dodać do ludzi w przyszłości, które mogą mieć ten problem, należy wykonać.

Powiązane problemy