【发布时间】: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