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

当前回答

我在我的ASP中遇到了同样的情况。网的网站。我删除了发布的文件,重启VS,重新清理和重建项目。在下一次发布之后,错误就消失了……

其他回答

当DLL的旧版本仍然在某个地方徘徊时,就会出现这个问题。确保部署了最新的程序集,并且某些文件夹中没有隐藏重复的旧程序集。最好的办法是删除所有构建的项目,然后重新构建/重新部署整个解决方案。

我通过在服务器上安装正确的. net Framework版本解决了这个问题。该网站在4.0版本下运行,它调用的程序集是针对4.5编译的。在安装。net Framework 4.5并将网站升级到4.5之后,一切工作正常。

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

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

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

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

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

可能的情况是

不匹配的nuget组件版本

问题详解

我们有一个解决方案生成了多个nuget包。

packageA 1.0中的类A

packageB 1.0中的B类

A参考B

所以当A和B都有更新时,我们必须更新packageA和packagb,但问题是我的团队成员之一没有更新packagb

现在PackageA 1.1仍然依赖于PackageB 1.0,但PackageB没有B类的更新版本

因此,它无法找到方法

解决方案

移动两个包到+1版本 在这种情况下,我移动了

PackageA 1.1 -> PackageA 1.2 .

包装0 . 1.1

但为了使事情更加对称,可以将两者移动到相同的版本

PackageA 1.1 -> PackageA 1.2 .

PackageB 1.0 -> PackageB 1.2