317 votes

J’obtiens l’erreur « une tentative a été effectuée pour charger un programme avec un format incorrect » sur un projet de réplication SQL Server

L’erreur exacte est la suivante

N’a pas pu charger fichier ou l’assembly ' Microsoft.SqlServer.Replication, Version = 9.0.242.0, Culture = neutral, PublicKeyToken = 89845dcd8080cc91' ou une de ses dépendances. Une tentative a été effectuée pour charger un programme avec un format incorrect.

J’ai récemment commencé à travailler sur ce projet à nouveau après un mois deux déplacé vers un autre projet. Cela a fonctionné parfaitement avant, et j’ai revérifié toutes les références.

401voto

bboyle1234 Points 2347

La réponse ci-dessus est correct, mais vous pouvez aussi avoir besoin d'activer les applications 32 bits dans votre pool d'applications.

Source: http://www.alexjamesbrown.com/uncategorized/could-not-load-file-or-assembly-chilkatdotnet2-or-one-of-its-dependencies-an-attempt-was-made-to-load-a-program-with-an-incorrect-format/

Tandis que la configuration d'une application de s'exécuter sur ma machine locale (sous Vista 64 bits), j'ai rencontré cette erreur:

Impossible de charger le fichier ou l'assembly ChilkatDotNet2 ou l'un de ses les dépendances. Une tentative a été faite pour charger un programme avec une mauvaise format.

Évidemment, l'application utilise ChilKat composants, mais il semblerait que la version que nous utilisons, ce n'est que la version 32 bits.

Pour résoudre cette erreur, j'ai mis mon pool d'application dans IIS pour autoriser les applications 32 bits. Ouvrir le Gestionnaire des services IIS, cliquez du bouton droit sur le pool d'applications et sélectionnez Paramètres Avancés (Voir ci-dessous)

enter image description here

Réglez ensuite "Activer les Applications 32 bits" à True.

enter image description here

Tout fait!

120voto

baldy Points 2922

J'ai trouvé la solution. J'ai récemment mis à jour ma machine Windows Server 2008 64-bit. La SqlServer.La réplication de l'espace de noms a été écrit pour les plates-formes 32 bits. Tout ce que je devais faire pour le remettre en marche a été de définir la Plate-forme Cible dans le Projet de Construire des Propriétés pour X86.

52voto

Harpal Points 769

Aller dans IIS -> Pool d'applications -> Paramètres avancés -> Activer les Applications 32 bits

11voto

Kyralessa Points 76456

Pour ceux qui obtiennent cette erreur dans un ASP.NET MVC 3 projet dans Visual Studio:

Dans un ASP.NET MVC 3 application que je suis en train de travailler sur, j'ai essayé d'ajouter une référence à Microsoft.SqlServer.BatchParser à un projet de résolution d'un problème où il était manquant sur un serveur de déploiement. (Notre application utilise SMO; la bonne solution était d'installer SQL Server Native Client et un couple d'autres choses sur le serveur de déploiement.)

Même après que j'ai supprimé la référence à BatchParser, j'ai continué à obtenir la "Une tentative a été faite..." erreur, la référence à la BatchParser DLL, sur tous les ASP.NET MVC 3 page je l'ai ouvert, et que l'erreur a été suivie par des dizaines de page de l'analyse des erreurs.

Si cela vous arrive, faire une recherche de fichiers et de voir si la DLL est encore dans l'une de votre projet \bin dossiers. Même si vous faites une reconstruction, Visual Studio n'est pas nécessairement effacer tout dans tous vos dossiers \bin. Quand j'ai supprimé le fichier DLL à partir de la corbeille et construit à nouveau, l'erreur a disparu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X