ASP.NET:找不到ICollection构造函数吗?
时间:2020-03-06 14:36:51 来源:igfitidea点击:
我有一个在远程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>();
日历类是完全无关的类!有没有人注意到.NET以前不正确地编译过这样的代码?
解决方案
IIS设置是否使用.NET 2.0?如果不是,请将其更改为2.0。如果在列表中看不到2.0,则需要从2.0框架目录运行aspnet_regiis。
两个系统上的.NET版本是否都相同?相同的服务包?
这是由于aspnet合并工具中的错误导致错误地合并了优化的程序集。可以通过不合并部件或者不优化它们来解决。