2010-01-14 5 views
0

Je me gratte la tête depuis des années. Je suis sûr que c'est vraiment simple à réparer mais je ne peux pas le voir.Echec de la compilation de la méthode Linq dans App_Code

J'ai une classe dans App_Code qui utilise un peu de Linq. Je l'ai développé localement et tout fonctionne bien. Lorsque je transfère vers un hébergement IIS, la même classe ne parvient pas à se compiler. Je reçois:

does not contain a definition for 'Single' and no extension method 'Single' 
accepting a first argument of type 'SiteMapWrapper' could be found (are you 
missing a using directive or an assembly reference?) 

J'ai confirmé que le répertoire virtuel exécute .NET 2.0 comme il le devrait. J'ai également confirmé que les assemblys corrects sont en cours de chargement dans web.config.

<compilation debug="true"> 
    <assemblies> 
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    </assemblies> 
</compilation> 

J'ai déjà essayé d'ajouter des directives namespaces dans web.config mais pas de chance. Quelqu'un peut-il penser à autre chose à essayer?

Merci beaucoup.

+0

Qu'est-ce que 'SiteMapWrapper'? –

+0

Juste ma propre classe personnalisée pour l'emballage du sitemap. Rien de compliqué. – madcapnmckay

Répondre

0

Je pense que vous trouverez que le serveur n'a pas 3.5 installé.

0

Ajoutez using System.Linq; au début du fichier .cs.

De même, assurez-vous que SiteMapWrapper implémente IEnumerable<T>.

EDIT: Je n'ai pas remarqué que cela fonctionne sur la machine locale.
Assurez-vous que le serveur possède les versions correctes de tous les assemblages dépendants.

0

LINQ nécessite réellement .NET 3.0 (3.5 est meilleur), pas 2.0. Assurez-vous que AppPool est configuré correctement.

0

Modifier le Build Action propriété de votre fichier .cs de contenu à Compile.

See this article pour plus d'informations.

Questions connexes