2010-11-10 8 views
0

Je travaille sur un projet de site Web (pas d'application Web) sous Visual Web Developer Express Edition 2008 et en utilisant C# comme langue.Erreur de compilation ASP.NET

Dans le site Web, j'ai une référence à un service (un fichier ASMX dans un serveur). Quand je lance l'application, il peut montrer localement la Default.aspx sans problème mais quand je télécharge sur mon site d'hébergement, il me donne une « erreur de compilation »:

Compilation Error  
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.  
Compiler Error Message: CS0234: The type or namespace name 'ServiceModel' does not exist in the namespace 'System' (are you missing an assembly reference?)  
Source Error:  
[No relevant source lines]  
Source File: App_WebReferences.doheyfto.0.cs Line: 791 

Je ne sais pas pourquoi il est donné cette erreur , J'ai utilisé cette même référence de service dans un projet d'application Web et cela fonctionne très bien.

J'ai essayé d'ajouter manuellement la référence à System.ServiceModel.Web à mon projet et aussi de copier le fichier DLL correspondant dans le dossier BIN mais ensuite j'obtiens une erreur sur un espace de noms différent, je pense que ce n'est pas la solution, je devinez que les espaces de noms qui sont référencés (à partir du .NET Framework) doivent être ajoutés automatiquement au projet, ne devrait-il pas fonctionner comme ça?

Merci à tous à l'avance

+0

J'ai trouvé quelque chose d'intéressant, il semble que le site fait référence au chemin du dll des mon ordinateur, il n'essaie pas d'utiliser les DLL de l'ordinateur du fournisseur d'hébergement – Arturo

Répondre

0

System.ServiceModel existe uniquement dans .NET 3.0 ou supérieur. Vous devez vous assurer que votre fournisseur d'hébergement prend en charge au moins cette version du framework.

+0

Merci Frederic, le fournisseur prend en charge Framework 3.5. J'ai une autre application déployée sur le même serveur en utilisant 3.5 et tout fonctionne très bien. – Arturo

+0

Et votre application ne cible pas 4.0, non? –

+0

Non, c'est le ciblage 3.5, je viens de vérifier, aussi je n'ai pas .NET 4 installé et s'exécute bien localement – Arturo

0

Assurez-vous que l'assemblage System.ServiceModel est également inclus dans web.config sous étiquette de compilation - quelque chose comme

<compilation defaultLanguage="c#" debug="true"> 
    <assemblies> 
    ... 
    <add assembly="System.ServiceModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    </assemblies> 
</compilation> 
+0

Merci, cette ligne n'était pas incluse dans la balise de compilation. Je l'ai ajouté manuellement mais j'ai eu une erreur: Impossible de charger le fichier ou l'assembly 'System.ServiceModel, Version = 3.5.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089' ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié. – Arturo

+0

@Curro, mes excuses - modèle de service était l'assemblage 3.0.0.0 - il aurait donc dû être "System.ServiceModel, Version = 3.0.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089" – VinayC