2014-07-24 2 views
0

J'ai une solution ASP.Net 4.5 qui compile & lorsqu'elle est définie sur ANYCPU, mais j'ai une méthode qui nécessite plus de mémoire et ce projet va vivre dans un environnement x64 environnement donc j'ai pensé recompiler et le problème résolu. Faux. Après une construction réussie, je reçois cette erreur lorsque vous tentez de déboguer l'application:Erreur lors de la conversion du projet x86 asp.net en x64

Exception Details: System.BadImageFormatException: Could not load file or assembly 'Core' or one of its dependencies. An attempt was made to load a program with an incorrect format. 

Jusqu'à présent, j'ai deux vérifié mes propriétés de configuration de solution et toutes les propriétés du projet, tout est conforme à x64.

Quoi d'autre pourrait empêcher la conversion? Une référence 32 bits seulement peut-être?

** J'ai publié mon application sur un serveur Web 64 bits avec la plateforme cible comme ANYCPU. La limite de mémoire privée est d'environ 6gbs. Lors de l'exécution de la méthode intensive de mémoire (exportation vers Excel via la bibliothèque ClosedXML), la mémoire utilisée par l'application atteint un pic de 2,7gbs et est vidée, puis augmente l'erreur OutOfMemory. Il semble que l'applciation fonctionne toujours en mode 32 bits?

*** FIXES: Je me suis arrêté jeter l'exception OutOfMemory en ajoutant ceci au post-événement options de construction:

call "$(DevEnvDir)..\..\vc\vcvarsall.bat" x86 
"$(DevEnvDir)..\..\vc\bin\EditBin.exe" "$(TargetPath)" /LARGEADDRESSAWARE 

Répondre

2

AnyCPU signifie que votre application fonctionnera comme un processus 64 bits sur 64 bits IIS et en tant que processus 32 bits sur le serveur de développement Cassini 32 bits. Vous ne pourrez pas exécuter l'application compilée pour x64 sur Cassini 32 bits.

La ligne de fond est: vous êtes bien avec la cible AnyCPU et vous obtiendrez les avantages de l'environnement x64.

+0

Je réalise à quel point j'ai l'air ignorant ici, mais j'apprends comme je suis un environnement Cassini 32 bits == IISExpress? – JonBruce

+0

@JonBruce: non, Cassini est un serveur de développement livré avec Visual Studio. – empi

Questions connexes