IIS 7.5 Fixing Es wurde versucht, ein Programm mit einem falschen Formatproblem zu laden.
Ich habe ein ungewöhnliches problem auslösen einer Ausnahme "Ein es wurde versucht, ein Programm mit einem falschen format" - Fehler? Ich habe zwei identische Webseiten auf der gleichen IIS-server und meine build-Konfiguration funktioniert bei einem von Ihnen, aber nicht den anderen.
Mein C# MVC 2-web-app bereitgestellt, um zwei websites, die sich auf dem gleichen IIS 7.5 webserver (x64). Man ist der live-Website (eingeführt mit Release-Konfiguration), die zweite ist die beta-Website (bereitgestellt mit einem neuen Beta-Konfiguration erstellt, nur für dieses Projekt). Die Codebasis für beide Projekte ist die gleiche. Sie haben unterschiedliche build-Konfigurationen, aber die Einstellungen in den Konfigurationen sind identisch.
Bereitstellung der release-Konfiguration auf Default-Website/my_app funktioniert perfekt.
Bereitstellung der beta-Konfiguration zu Beta/my_app setzt, aber wenn ich das laden der Seite (jeder Seite), habe ich das falsche format Ausnahme.
Kann ich nicht verstehen, warum die Bereitstellung von mit der exakt gleichen config-Einstellungen für eine website, aber nicht die anderen (auf dem gleichen webserver). Mein server + dev Maschinen sind 64 bit, und beide Webseiten haben die gleichen app-pool-Einstellungen (.NET 4, integriert).
Wie kann ich feststellen/beheben dieses problem? Vorzugsweise zimmerreserviereung, ohne das Sie unterschiedliche Konfigurationseinstellungen für jede Website. Und möglichst ohne Wechsel der release-config, da ist arbeiten, und ich nicht riskieren wollen, es zu ändern.
Die beiden Seiten sind:
Default Website/my_app
Beta/my_app
Den Konfigurations-manager für release hat diese Einstellungen:
Den configuration manager für die beta hat exakt die gleichen Einstellungen:
Ausnahme ist:
Could not load file or assembly 'MyApp.Domain.Model' or one of its dependencies.
An attempt was made to load a program with an incorrect format.
Stack Trace:
[BadImageFormatException: Could not load file or assembly 'MyApp.Domain.Model' 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, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks) +567
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +192
System.Reflection.Assembly.Load(String assemblyString) +35
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +123
[ConfigurationErrorsException: Could not load file or assembly 'MyApp.Domain.Model' 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) +11479520
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +484
System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +79
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +334
System.Web.Compilation.BuildManager.CallPreStartInitMethods() +280
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +1087
[HttpException (0x80004005): Could not load file or assembly 'MyApp.Domain.Model' or one of its dependencies. An attempt was made to load a program with an incorrect format.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11612256
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4842149
Habe ich gesehen, dass es mehrere Fragen auf, SO zu Fragen, "es wurde versucht, zu laden, ein Programm mit einem falschen format", aber ich glaube nicht, dass dies ein Duplikat zu sein. Dies ist eine einzigartige situation, mit der config funktioniert Prima auf einer Website, aber nicht auf dem anderen mit der selben config Einstellungen und dem gleichen webserver für beide.
InformationsquelleAutor der Frage JK. | 2011-07-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem gefunden - Die Lösung liegt in der Art und Weise, dass die beiden Anwendungspools konfiguriert werden:
Ändern BetaAppPool zu setzen Enable 32-Bit applications auf TRUE gesetzt hat, dieses problem.
Lösung wurde gefunden durch @Rick auf diese Frage: C# - Entity Framework 4 Common Language Runtime erkannt, eine ungültige Programm-Fehler?
InformationsquelleAutor der Antwort JK.
Haben Sie eine x86 dll verworfen wird, Ihre x64 Einsatzort.
Nicht. Es funktioniert nicht.
InformationsquelleAutor der Antwort Joshua