1

Je suis confronté à ce problème. J'ai cherché toutes sortes de solutions pour cela mais en vain, finalement décidé de demander ici.Impossible de charger le fichier ou l'assembly 'System.Data.dll' ou l'une de ses dépendances. n'est pas une application Win32 valide. (Exception de HRESULT: 0x800700C1)

L'application Web est un .NET 4.0 déployé avec IIS dans un serveur de transfert, il a fonctionné correctement jusqu'à récemment. Il fonctionne bien dans le serveur de production et de développement.

enter image description here

La plate-forme d'application web est 'Any CPU', construit en machine x64, déployée dans la machine x64. Mais tous les assemblages de référence utilisent 32 bits et l'application dll est compilée en 32 bits. Nous avons défini 'Activer les applications 32 bits' dans le pool d'applications IIS.

Maintenant, j'ai recompilé l'application et tous ses assemblages sur la plate-forme x86 et déployés sur le serveur de transfert. Mais la même erreur apparaît à nouveau.

J'ai utilisé la fusion pour consigner pour voir si le System.data.dll pourrait être chargé correctement comme ci-dessous.

enter image description here

Je pense qu'il est quelque chose à voir avec le serveur, que le site fonctionne très bien dans la production. Il y a eu récemment des correctifs de sécurité dans le serveur de transfert.

+1

C'est le problème habituel, une incompatibilité 32/64 bits quelque part –

+0

Mais comment puis-je trouver où est-il incompatible? En fait toutes les applications Web qui fonctionnent sur 32 bits ont la même erreur maintenant sur notre serveur de transfert. – Ling

+0

L'une des dépendances est 64 bits, ou corrompue. Peut-être un fichier d'exécution. Qu'avez-vous changé récemment? –

Répondre

0

Pour cela, nous devons vérifier le fichier GAC dans le chemin suivant. 1.c: //windows/microsoft.net/assembly/GAC32--> remplacer le nouveau 32bit system.dll 2.c: //windows/microsoft.net/assembly/GAC64--> remplacer le nouveau système 64 bits .dll

Maintenant, j'ai résolu le problème en faisant cela.

+0

Merci pour la réponse. Je vais essayer ça et voir – Ling