342 votes

System.MissingMethodException: Méthode non trouvée?

Mon application de formulaires Web asp.net fonctionnait bien jusqu'à ce matin. Maintenant, il jette cette erreur? Le DoThis est sur la même classe alors devrait fonctionner?

J'ai un gestionnaire générique qui contient:

 public class MyHandler: IHttpHandler
{
    public void Processrequest(HttpContext context)
    {
        switch (somepage)
        {
            case "page1.aspx"
                this.DoThis(); // throws error now System.MissingMethodException: Method not found?

        }
    }

    public void DoThis()
    {
    //
    }
}
 

507voto

Polity Points 7316

Il s'agit d'un problème qui peut survenir lorsqu'une ancienne version d'une DLL persiste quelque part. Assurez-vous que les derniers assemblys sont déployés et qu'aucun assemblage ancien dupliqué ne se cache dans certains dossiers. Votre meilleur choix serait de supprimer chaque élément construit et de reconstruire / redéployer la solution complète.

28voto

Ben Gripka Points 4885

J'ai résolu ce problème en installant la version correcte de .NET Framework sur le serveur. Le site Web tournait sous la version 4.0 et l'assembly auquel il appelait était compilé pour la version 4.5. Après l'installation de .NET Framework 4.5 et la mise à niveau du site Web à la version 4.5, tout fonctionne correctement.

5voto

Josh Noe Points 878

Cela m'est arrivé avec un fichier référencé dans le même assemblage, pas une dll séparée. Une fois que j'ai exclu le fichier du projet, puis que je l'ai inclus à nouveau, tout a bien fonctionné.

3voto

Lee Bailey Points 1207

Avez-vous essayé d'éteindre et d'allumer à nouveau? Blague à part, le redémarrage de mon ordinateur a été ce qui a vraiment fait l'affaire pour moi et n'est mentionné dans aucune des autres réponses.

2voto

Ron Kanagy Points 21

J'avais un scénario similaire où je commençais à cette même exception levée. J'ai eu deux projets dans mon application web solution, nommé, par exemple, DAL et le DAL.CustSpec. Le DAL projet avait une méthode nommée Method1, mais DAL.CustSpec n'a pas. Mon projet principal a une référence à la DAL projet et aussi une référence à un autre projet nommé AnotherProj. Mon principal projet fait appel à la Method1. Le AnotherProj projet avait une référence à la DAL.CustSpec projet, et non pas le DAL projet. La configuration de la compilation a la fois le DAL et le DAL.CustSpec projets configuré pour être construit. Après tout a été construit, mon projet d'application web a la AnotherProj et DAL assemblées dans son dossier Bin. Cependant, quand j'ai couru le site internet, le Temporaire ASP.NET dossier pour le site web a le DAL.CustSpec assemblée dans ses fichiers, et pas le DAL assemblée, pour une raison quelconque. Bien sûr, quand j'ai couru la partie qui a appelé Method1, j'ai reçu une "Méthode pas trouvé d'erreur".

Ce que j'avais à faire pour corriger cette erreur a été de changer la référence dans le AnotherProj projet de la DAL.CustSpec juste DAL, supprimé tous les fichiers Temporaires ASP.NET les Fichiers d'un dossier, puis rediffusé le site web. Après ça, tout a commencé à travailler. J'ai aussi fait en sorte que le DAL.CustSpec projet n'a pas été construit en la décochant dans la Configuration de Build.

Je pensais que je voudrais partager cela au cas où il permet à quelqu'un d'autre dans l'avenir.

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