以前工作的asp.net webforms应用程序现在抛出这个错误:

系统。MissingMethodException:方法未找到

DoThis方法在同一个类上,它应该可以工作。

我有一个通用的处理程序,这样:

public class MyHandler: IHttpHandler
{
    public void Processrequest(HttpContext context)
    {
      // throws error now System.MissingMethodException: 
      // Method not found.
      this.DoThis(); 
    }

    public void DoThis(){ ... }
}

当前回答

在我的案例中,spotify.exe使用的端口与我的web api项目想要在开发机器上使用的端口相同。端口号为4381。

我退出了Spotify,一切又恢复正常了:)

其他回答

你试过把它关掉再打开吗?玩笑归玩笑,重启电脑才是真正让我成功的方法,其他答案中都没有提到。

我在同一个程序集中引用了一个文件,而不是一个单独的dll,就发生了这种情况。一旦我从项目中排除了该文件,然后又将其包含进来,一切都工作得很好。

使用Costura。Fody 1.6 & 2.0: 在浪费了大量时间寻找所有其他潜在解决方案都不起作用的类似错误之后,我发现我嵌入的一个旧版本的DLL位于我运行新编译的.exe的同一目录中。显然,它首先在同一目录中查找本地文件,然后向内查找其嵌入式库。删除旧的DLL起作用了。

需要明确的是,我的引用并不是指向一个旧的DLL,而是旧DLL的副本位于我测试应用程序的目录中,该目录与编译应用程序的系统不同。

这发生在我使用MVC4时,我在阅读这个线程后决定重命名抛出错误的对象。

我做了一个清理和重建,并注意到它跳过了两个项目。当我重新构建其中一个时,有一个错误,我启动了一个函数而没有完成它。

所以VS引用了一个我重写的模型,而没有问我是否想这样做。

我刚刚在一个。net MVC项目中遇到了这个问题。根本原因是NuGet包的版本冲突。我有几个项目的解决方案。每个项目都有一些NuGet包。在一个项目中,我使用了企业库语义日志包的一个版本,而在另外两个项目(引用了第一个项目)中,我使用了同一包的旧版本。它编译时没有错误,但是当我尝试使用这个包时,它给出了一个神秘的“Method not found”错误。

解决办法是从两个项目中删除旧的NuGet包,这样它就只包含在真正需要它的一个项目中。(我也对整个解决方案做了一个干净的重建。)