我有一个在远程Web服务器上运行的ASP.NET应用程序,我刚刚开始收到此错误。我似乎无法在我的开发环境中重现它:
Method not found: 'Void System.Collections.Generic.ICollection`1..ctor()'.
这可能是由于.NET Framework或IIS 6的一些配置错误造成的吗?
更新: 我反汇编了DLL中的代码,似乎编译器错误地优化了代码。 (注意,Set是一个实现一组唯一对象的类。它继承自IEnumerable。)这一行:
Set<int> set = new Set<int>();
编译成这一行:
Set<int> set = (Set<int>) new ICollection<CalendarModule>();
Calendar类是一个完全不相关的类!有没有人注意到.NET之前错误地编译了这样的代码?
答案 0 :(得分:1)
两个系统上的.NET版本是否相同?相同的服务包?
答案 1 :(得分:0)
您的IIS设置是否使用.NET 2.0?如果没有,请将其更改为2.0。如果你在列表中看不到2.0,那么你需要从2.0框架目录运行aspnet_regiis。
答案 2 :(得分:0)
这是由aspnet合并工具中的错误引起的,该工具错误地合并了优化的程序集。它可以通过不合并程序集或不优化它们来解决。