我们在无法重新创建的生产服务器上遇到间歇性问题。
关于这个问题有两件非常奇怪的事情。首先,它是异常处理帮助器类的构造函数(ctor)上的方法未找到错误,其次,我们为远程用户打开了自定义错误,并且此属性被忽略。
错误的详细信息是:
Server Error in '/MyWebsite' Application.
Method not found: 'Void MyExceptionHelperClass..ctor (System.Exception)'.
...
Exception Details: System.MissingMethodException: Method not found: 'Void MyExceptionHelperClass..ctor (System.Exception)'.
...
堆栈跟踪非常无用。
我的想法是可能存在内存不足错误或类似的东西正在杀死页面。当异常处理代码启动时,它会尝试创建一个异常对象,该异常对象由于与给出此错误的相同原因而失败。
然而,这是一种疯狂的猜测。我们正在等待事件日志,看看服务器是否有任何问题,但与此同时,有人有什么想法或建议吗?
更新:
事实证明,很难从负责生产服务器的团队那里获取信息,但我设法发现就负载平衡而言,该站点目前仅在一台服务器上运行(可以切换到如有必要,另一个)。鉴于这是一个间歇性问题并且只涉及一台服务器,那么我很难相信这可能是一个装配问题。当然,如果是这样,那么每次都会出现问题吗?
最佳答案
如果您在启用了自定义错误的站点上看到此错误,则该错误发生在自定义错误处理例程本身中。
从 .NET 错误消息的外观来看,您的例程似乎需要一个通过引用接受异常的构造函数 - 您上面的评论显示了一个按值接受的构造函数。
仔细检查系统中某处是否没有旧版本的程序集。这些可以潜伏在 Temporary ASP.NET Files 文件夹中;您需要先执行“iisreset/stop”才能清除它们。
在这方面,确保将 AssemblyInfo.cs 设置为以某种方式自动标记版本号始终是一个好主意。我们的版本号与我们的源代码存储系统和 CI 构建框相关联,因此我们可以很容易地准确地知道什么是什么程序集。
关于ASP.Net MissingMethodException - "ctor"方法未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/971586/