Erreur d'exécution: impossible de charger le fichier ou l'assembly - Modules avec différents types de processeurs ont été trouvés
J'obtiens l'erreur d'exécution suivant dans mon service WCF.
Could not load file or assembly 'MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
Après certains en regardant autour, j'ai trouvé une suggestion pour l'utilisation Assemblée De Liaison De La Visionneuse Du Journal, ou Le Moniteur De Processus. Ni ou qui produit de l'information (qui est, le visualiseur de journaux ne montrait rien du tout, et le processus de la visionneuse de ne pas voir l'assemblée de la charge d'être tentée.
Je suis finalement tombé sur une suggestion d'utiliser cet utilitaire (dependency walker) pour trouver ce que l'assemblée a été la recherche de. À l'ouverture, j'ai eu immédiatement une erreur; et le journal a déclaré ce qui suit:
Erreur: Modules avec différents types de processeurs ont été trouvés.
Attention: Au moins un retard-charge de la dépendance du module n'a pas été trouvé.
Attention: Au moins un module a un suspens à l'importation en raison d'un manque de fonction d'exportation dans un délai-dépendante de la charge du module.
Error: Modules with different CPU types were found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
Selon la liste des modules, il ne pouvait pas trouver ces:
API-MS-WIN-CORE-COM-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL
DCOMP.DLL
IESHIMS.DLL
Certains de ceux-ci ressemblent ils se rapportent à la RT cadre; cependant, cette application a été développée dans .NET 3.5 (en fait, ce n'est pas strictement vrai - il a été développé en 4.5 et déclassé à 3,5).
En regardant certains de ces fichiers semble impliquer qu'ils sont tout à fait fondamentales de fichiers de Windows, et bizarrement, j'ai utilisé cette dll ailleurs dans la solution (certes sur le client) sans problème.
Je suis en utilisant VS2013 bien que j'ai essayé de VS2012 et obtenir le même problème.
Je l'ai fait venir à travers cette question qui, à première vue, semble être le même, bien qu'il se rapporte à C++.
Quelqu'un peut-il me donner quelques indications sur ce que le problème pourrait être, ou de ce à essayer ensuite?
Voici mon fusion journal:
=== Pre-bind state information ===
LOG: DisplayName = MyAssembly.MyLib.XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, processorArchitecture=MSIL (Fully-specified)
LOG: Appbase = file:///c:/myprog/bin/Debug/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = myprog.exe
Calling assembly : System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: c:\myprog\bin\Debug\myprog.exe.config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
J'ai réussi à réduire la bibliothèque en question jusqu'à ce qu'elle était juste une seule fonction statique qui retourne une chaîne de caractères, et l'erreur persiste.
J'ai au niveau pour obtenir la fusion du journal et ont mis à jour la question
C'était la 2ème panne, vous avez besoin de trouver l'entrée de la défaillance d'origine pour charger l'assembly. L'original du code d'erreur d'échec était une simple "fichier introuvable" erreur très commune de cours. Copie le fichier dans c:\inetpub\MyServices\bin devait apporter certains soulager.
Le fichier est déjà là.
Lorsque vous "déclassé à 3,5 comment avez-vous fait exactement? Il peut faire plus de sens de recréer votre fichier de projet(s) et ajouter les références de vérifier que la bonne version du runtime .les dll sont utilisés
OriginalL'auteur Paul Michaels | 2013-10-28
Vous devez vous connecter pour publier un commentaire.
La chose qui toujours m'a aidé à résoudre cette erreur a été de prendre de plus près à la partie du message d'erreur qui dit "ou une de ses dépendances".
Bien pourriez-vous mettre en ligne quelques exemple isolé?
J'ai rationalisé la question, un peu.
Je pense que cela s'est avéré pour être le plus proche de la réponse, donc je vais le prix de la prime.
OriginalL'auteur Marek
Visual Studio avec WCF a un caprice - si vous construisez à l'aide d'une plate-forme sélectionnée, elle exporte de l'assemblée dans une plate-forme spécifique du dossier. Si vous construisez avec "any CPU" il le met à la racine de votre WCF "Bin" du dossier.
Lors de la configuration d'IIS pour vous aider? Il suppose automatiquement vos assemblées sera à la racine de ce "Bin" du dossier.
Le net événement, c'est que lorsque vous sélectionnez "x86" au lieu de "any CPU", vous vous retrouvez avec les assemblées construit au mauvais endroit et tout à coup votre WCF ne fonctionne pas. C'est donc l'un des rares cas où le fourre-tout de l'erreur de ne pas être en mesure de charger le fichier ou l'assembly est de dire la vérité littérale - Visual Studio mettez votre assemblée au mauvais endroit, et maintenant il ne peut pas le trouver.
Je n'ai aucune idée de pourquoi ils ont fait ça comme ça. La WCF a quelques intéressants... les décisions de conception.
OriginalL'auteur Pxtl
Si vous avez plusieurs projets, il est possible que certains d'entre eux ne sont pas des bâtiment de lorsque vous exécutez l'application dans Visual Studio. Cliquez droit sur votre solution, puis allez dans les Propriétés, les Propriétés de Configuration et de confirmer tous les projets sont mis à compiler.
OriginalL'auteur bruestle2
Ainsi la bibliothèque qui fait partie de votre service WCF a une méthode et c'est le problème de la méthode.
Pouvez la méthode de référence de l'être retiré et l'erreur d'exécution s'en aller?
Il serait utile si vous pouviez poster la source pour le fichier de projet et vous devriez envisager de recréer le fichier de projet à partir de zéro.
De cette façon, s'il y a des références obsolètes à 4.x, ils seront supprimés, veuillez afficher plus au sujet de vos progrès...
Correct (il est évident qu'ils ont .net framework références)
Donc, il aurait vraiment aidé, si vous aviez dit à titre d'exemple seulement échoue lorsqu'il est déployé.
Il n'a pas été déployé, il était tous en cours d'exécution en local sur mon PC
OriginalL'auteur Mike Beeler
J'ai toujours trouvé que ne pouvait pas trouver est toujours parce qu'il n'y est pas.
Sons peut-être évident, mais parfois utile d'obtenir l'esprit droit => Il y a quelque chose qui n'est pas là.
Ensuite eh bien, si vous vous rappelez le principe de découplage de la définition de la mise en œuvre, il va impliquer que votre bibliothèque contenant l'interface et le service doit se déplacer à une dll externe au service.
maintenant que vous avez externalisé par intérim de code, si cela s'appuie en soi, vous n'avez qu'à la mise en œuvre gauche. Dont une révision à la baisse de la solution d'une approche pragmatique, c'est que le projet est devenu "drôle".
Faire de nouveaux projets spécifiques à votre tâche d'une version et depuis qu'il est très probable que maintenant contient la référence de votre bibliothèque et d'un fichier avec une ligne appelé quelque chose comme thisismyservicename.svc ainsi que d'une adresse et d'une liaison, il devrait être assez facile de copier le système.servicemodel partie de votre site web.config.
Maintenant vous n'avez plus rien dans votre projet original et actionner la chasse d'eau est en toute sécurité.
OriginalL'auteur T. Nielsen
On dirait que je ne suis pas la seule personne qui est ici. Je vais laisser cet up au cas où il permet à quiconque:
http://social.msdn.microsoft.com/Forums/en-US/9f0c169f-c45e-4898-b2c4-f72c816d4b55/strange-xmlserializer-error?forum=asmxandxml
Simplement ignorer l'erreur... que la façon dont il est censé fonctionner!?
EDIT:
J'ai récupéré cette réponse pour référence future. J'ai finalement résolu le problème. Ce n'était pas la question ci-dessus, il a été un IIS problème spécifique à la solution à mon travail. Il y avait un post-construction de copier compilé WCF binaires à un lieu commun, mais qui, évidemment, ne comprend pas la nouvelle dépendance.
Je vais le prix de la réponse la plus exacte.
OriginalL'auteur Paul Michaels
J'ai eu le même problème avec wcf, j'ai le projet de travail et après l'ajout d'un service wcf il arrêter de charger le fichier svc et les mêmes problèmes, rien n'a fonctionné pour moi, et à la fin j'ai supprimé le service et le redémarrage de la machine, le tout reconstruire et à la fin j'ai ajouté le nouveau service de.
OriginalL'auteur Ehsan
Cette erreur généralement tout projet est développé en plus de la version de visual studio/Asp.Net et exécuter/déployé machine dispose d'une version inférieure. Tout d'abord vérifier la version de Visual Studio à la fois de la machine.
OriginalL'auteur Ramakant Shukla