【问题标题】:Periodically seeing the ASP.NET error CS0656: Missing compiler required member定期看到 ASP.NET 错误 CS0656: Missing compiler required member
【发布时间】:2018-07-06 16:01:15
【问题描述】:

我在我的 Web 应用程序中偶尔(似乎是随机)看到以下错误。我们正在运行 Windows Server 2008R2、IIS 7.5、MVC3、.NET 4.5。

每次都是同样的错误:CS0656: Missing compiler required member 'Microsoft.CSharp.RuntimeBinder.Binder.BinaryOperation'

发生此错误时,它可能需要从重新启动应用程序池到重新安装我们的应用程序本身,再进行修复。

错误发生在全新的 VM 映像(之前未安装我们的软件)以及之前安装了我们的软件的机器上。该错误可能发生在应用程序第一次运行时,或者当应用程序的运行时间足以让 IIS 应用程序池回收工作进程时(看起来如此)。

这变得非常难以处理,因为我已经对此错误进行了大量研究,并尝试了多种解决方案,但都没有运气。此外,错误发生的随机频率使得故障排除非常困难。对此问题的任何见解或可能的解决方案的想法将不胜感激。在这一点上,我几乎愿意尝试任何事情。

【问题讨论】:

  • 1) 您能否在您的测试虚拟机之一附加调试器并使其崩溃? 2) 你在使用 DLR 吗?查看 BCL 源代码和文档,类型名称似乎与动态操作相关联。或者可能是 MVC 对 DLR 的使用?
  • 你能检查一下使用的是什么版本的Microsoft.CSharp.dll(用procexp之类的工具确定路径),用.NET Reflector之类的工具打开它并检查BinaryOperation静态方法是那里?这可能是版本控制问题(编译器需要更新版本的 Microsoft.CSharp.dll)
  • 您在使用 C# 动态语言功能吗?无论如何,它看起来像是一个 CLR 损坏了。

标签: c# asp.net-mvc iis-7.5


【解决方案1】:

这看起来很熟悉。如果我没记错的话,我不得不删除 bin 目录并重新构建,因为旧版本的 dll 到处都是,而且这个类是在 .net 4.0 中引入的

经过一番研究,这个网站似乎同意:http://our.umbraco.org/forum/using/ui-questions/20474-Missing-compiler-required-member-MicrosoftCSharpRuntimeBinderBinderInvokeMember

【讨论】:

    【解决方案2】:

    Try Forest Cheng Answer:

    您的 .NET Framework 是什么版本? ASP.NET MVC 3 运行时组件需要 .NET Framework 版本 4 和 Visual Studio 2010 或 Visual Web Developer 2010 Express。想了解更多,请关注ASP.NET MVC 3 Release Notes

    编译器错误 CS0656 可能由以下问题引起:

    1. 您安装的公共语言运行时已损坏。

    2. 您有一个对定义类型的程序集的引用,该类型也在公共语言运行时中找到。但是,您的程序集类型未按照 C# 编译器的预期方式定义。

    因此请检查您的引用以确保您使用的是正确版本的公共语言运行时。

    【讨论】:

      【解决方案3】:

      我们曾经在很久以前的 .net 1 及更高版本中随机出现这些编译错误。这需要删除临时 asp.net 文件夹的内容,并找到其他流氓 dll,即使在 Visual Studio 缓存中也是如此。一般来说,刷新临时的 asp.net 文件夹就可以了。

      确保找到所有 dll - bin 文件夹太明显,并记住 dll 是从影子目录执行的。这就是为什么我记得(也是从很久远的记忆中)有一个连接到加载程序集的默认应用程序域,特别是如果您随后加载“相同的程序集”但从不同的文件位置。

      【讨论】:

        【解决方案4】:

        确保您的项目中添加了 Microsoft.CSharp 参考。

        我将它添加到我的测试项目中,错误消失了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-06-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-09-16
          • 2021-01-19
          • 2016-01-29
          相关资源
          最近更新 更多