以前工作的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(){ ... }
}

当前回答

在我的例子中,我的项目引用了Microsoft.Net.Compilers.2.10.0。当我把它切换到Microsoft.Net.Compilers.2.7.0时,错误消失了。有这么多原因的一个多么神秘的错误。

其他回答

只是为了帮助任何人,虽然这是一个老问题,我的问题有点奇怪。

我在使用Jenkins时遇到了这个错误。

最终发现系统日期被手动设置为未来日期,这导致dll使用该未来日期编译。当日期被设置回正常时,MSBuild解释为文件更新,不需要重新编译项目。

我使用了一种在上面的回复中没有提到的方法来解决这个问题。

在我的例子中,调用类方法的项目的目标项目框架设置不正确。

(调用项目的目标框架不正确。被调用的类/方法的目标框架是正确的,我保持不变)。

在更新各种Nuget包后遇到这个错误。检查Visual Studio错误列表(或构建输出),查看类似以下的警告:

发现同一依赖项的不同版本之间存在冲突 组装。在Visual Studio中,双击此警告(或选择它) 并按Enter)来修复冲突;否则,添加如下内容 绑定重定向到应用程序中的“运行时”节点 配置文件: ...

在Visual Studio中双击此警告会自动调整我的web中的各种bindingRedirect包版本。配置并解决了错误。

我也有同样的事情发生,当我有许多MSBuild进程在后台运行时,它们实际上已经崩溃了(它们引用了旧版本的代码)。我关闭VS并在进程资源管理器中杀死所有MSBuild进程,然后重新编译。

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

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