2008-09-23 7 views
0

J'ai une application ASP.NET fonctionnant sur un serveur web distant et j'ai juste commencé à recevoir cette erreur. Je ne peux pas l'air de le reproduire dans mon environnement de développement:ASP.NET: ICollection, constructeur introuvable?

Method not found: 'Void System.Collections.Generic.ICollection`1..ctor()'. 

Cela pourrait-il être dû à une mauvaise configuration du .NET Framework ou IIS 6?

Mise à jour: J'ai désassemblé le code dans la DLL et il semble que le compilateur optimise incorrectement le code. (Notez que Set est une classe qui implémente un ensemble d'objets uniques Il hérite de IEnumerable..) Cette ligne:

Set<int> set = new Set<int>(); 

est compilé dans cette ligne:

Set<int> set = (Set<int>) new ICollection<CalendarModule>(); 

La classe Calendar est totalement classe sans rapport !! Est-ce que quelqu'un a déjà remarqué .NET compiler incorrectement du code comme ça avant?

Répondre

0

Cela a été provoqué par un bogue dans l'outil de fusion ASPNET qui a fusionné incorrectement les assemblys optimisés. Il peut être résolu en ne fusionnant pas les assemblages ou en ne les optimisant pas.

0

Votre installation IIS utilise-t-elle .NET 2.0? Si ce n'est pas le cas, remplacez-le par 2.0. Si vous ne pouvez pas voir 2.0 dans la liste, vous devez exécuter aspnet_regiis depuis le répertoire du framework 2.0.

1

Les versions .NET des deux systèmes sont-elles inc. le même service pack?