Le problème :
Une application ASP.NET Web Forms, auparavant fonctionnelle, produit désormais une erreur « System.MissingMethodException : Method not found » lors de l'appel de la méthode DoThis
au sein d'un gestionnaire générique.
Contexte :
DoThis
réside dans la même classe que le gestionnaire générique.<code class="language-csharp">public class MyHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { // Now throws System.MissingMethodException: Method not found. this.DoThis(); } public void DoThis() { ... } }</code>
Solution :
Cette exception résulte généralement d'un conflit de version entre la DLL contenant DoThis
et la DLL référencée par l'application. Voici comment y remédier :
Nettoyer les fichiers compilés : Supprimez tous les fichiers des répertoires ~/App_Code/bin
et ~/bin/
. Cela garantit qu’aucun code compilé obsolète n’interfère.
Reconstruire et redéployer : Effectuez une reconstruction propre de votre solution et redéployez-la sur votre serveur. Cela garantit le déploiement des versions d'assembly les plus à jour.
Éliminez les assemblages en double : Recherchez les assemblages en double ou plus anciens résidant dans des dossiers cachés, tels que ~/bin/Debug
ou ~/bin/Release
. Supprimez toutes les versions inutiles ou obsolètes.
En suivant ces étapes, l'erreur « System.MissingMethodException : Méthode non trouvée » devrait être résolue, permettant à votre application d'appeler correctement la méthode DoThis
.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!