2010-05-01 12 views
0

J'ai une application ASP.NET qui a été compilée sur une machine 32 bits. Il y a beaucoup d'assemblages différents qui sont référencés. J'ai ouvert la DLL principale du site Web avec ILDASM et regardé les .corflags. Il a déclaré que c'était ILONLY. Cependant, lorsque j'exécute le site Web localement sur la machine 64 bits (Windows XP Pro 64 bits), j'obtiens «n'est pas une application Win32 valide». L'application ne devrait-elle pas fonctionner en 64 bits puisqu'elle a été compilée avec "AnyCPU"? Comment puis-je faire en sorte que cela fonctionne? J'utilise .NET 3.5. Je veux que l'application fonctionne en 64 bits, pas en 32 bits.Machine ASP.NET 32 bits compilée en cours d'exécution sur une machine 64 bits

+0

Pourriez-vous définir «lorsque j'exécute le site Web localement», c'est-à-dire, comment recevez-vous le message «pas une application Win32 valide» - est-ce dans le journal des événements? – Rob

+0

Tous les assemblages référencés AnyCPU sont-ils également inclus? Vous ne pouvez pas charger d'assemblys 32 bits dans une application 64 bits. –

+0

Pour exécuter localement (tous les fichiers sont sur ma machine), je cours http: //localhost/myapp/mydefaultpage.aspx – user31673

Répondre

1

Probablement certaines de vos DLL ne sont pas compilées en tant que AnyCPU.

Utilisez le Process Monitor de sysinternals pour le localiser et le corriger/le changer.

Avec le moniteur de processus, vous pouvez voir où il ne parvient pas à charger une DLL.

Vous pouvez également utiliser le dependencyWalker après avoir localisé certains de votre DLL problématique, pour voir plus d'informations sur la DLL qui ne sont pas chargés.

Espérons cette aide.

Questions connexes