2011-03-04 4 views
1

J'ai un fichier .svc très simple (VSTOService.svc) pour certains services web offerts dans VSTO:Compile Erreur moins fichier .svc est ouvert dans VS 2010

<%@ ServiceHost Language="C#" 
    Debug="true" Service="MyCompany.Communications.VSTOService" 
    Factory = "MyProject.Communications.IocServiceHostFactory" 
    CodeBehind="VSTOService.cs"%> 

Ce fichier se trouve dans une communication projet qui est l'un des 12 projets dans ma solution. Tant que le fichier est ouvert dans l'éditeur de source VS, l'ensemble de la solution compile bien. Si, cependant, le fichier est fermé, je reçois des erreurs de compilation.

Quand je compile le projet de communication par lui-même, j'ai le même problème, avec deux des erreurs de compilation: les mots-clés, identifiant ou chaîne attendue après spécificateur textuellement: @
Un espace de noms ne peut pas contenir directement des membres tels que les champs ou méthode

De toute évidence, je n'ai pas spécifié un espace de noms dans le fichier .svc, mais juste au cas où, j'ai également vérifié les deux classes dans le projet. Ils vont bien. J'ai aussi essayé de supprimer l'espace entre le @ et le "ServiceHost" mais VS insiste pour le remettre quand je sauvegarde le fichier. (I déteste quand le logiciel/matériel me donne la lèvre!)

Alors, ce qui cause ce comportement tout à fait bizarre?

Répondre

1
<% @ServiceHost Language="C#" 
    Debug="true" Service="MyCompany.Communications.VSTOService" 
    Factory = "MyProject.Communications.IocServiceHostFactory" 
    CodeBehind="VSTOService.cs"%> 

mouvement @ signe avec ServiceHost comme <% @ServiceHost et nous espérons que votre erreur se résoudre

+0

Merci pour la réponse. Malheureusement, ça ne marche pas non plus. En fait, je dois sauter à travers toutes sortes de cerceaux pour utiliser ce format parce que VS2010 reformate <% @ServiceHost ... à <% @ ServiceHost ... Je dois en fait faire le changement, cliquez sur un autre onglet d'édition, puis enregistrez tout , pour empêcher le reformatage du VS2010. (Oui, je peux désactiver le reformatage, mais c'est utile pour beaucoup d'autres choses.) Quoi qu'il en soit, quand je passe par ce rigmarole, je reçois toujours l'erreur. Étrangeté! – EoRaptor013

1

Assurez-vous que lorsque vous créez le fichier * .svc qu'il ne crée pas un fichier * de .svc.cs. Dans le cas contraire, supprimez-le et supprimez l'attribut CodeBehind de @ServiceHost

0

j'ai vu que mon fichier svc est comme

<%@ ServiceHost Language="C#" Debug="true" Service="MessageProcessor.Async" %> 
<a href="Msg.svc">Msg.svc</a> 

Je ne sais pas comment la balise d'ancrage obtenu inséré sous étiquette ServiceHost, qui était à l'origine le problème. après avoir supprimé tag d'ancrage(), il a résolu le problème "Un espace de noms ne peut pas contenir directement les membres tels que les champs ou la méthode"

Questions connexes