Ошибка компиляции, если файл .svc не открыт в VS 2010 - PullRequest
1 голос
/ 04 марта 2011

У меня есть очень простой файл .svc (VSTOService.svc) для некоторых веб-сервисов, предлагаемых в VSTO:

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

Этот файл находится в проекте Communications, который является одним из 12 проектов в моемрешение.Пока файл открыт в редакторе исходного кода VS, все решение компилируется просто отлично.Однако, если файл закрыт, я получаю ошибки компиляции.

Когда я сам компилирую проект Communications, у меня возникает та же проблема с двумя ошибками компиляции: ключевое слово, идентификатор или строка, ожидаемая после спецификатора дословно: @
Пространство имен не может напрямую содержать элементы, такие как поляили метод

Ясно, что я не указал пространство имен в файле .svc, но на всякий случай я также проверил два класса в проекте.Они в порядке.Я также пытался убрать пробел между @ и "ServiceHost", но VS настаивает на том, чтобы вернуть его обратно при сохранении файла.(Я ненавижу это когда программное / аппаратное обеспечение дает мне губу!)

Итак, что вызывает это совершенно странное поведение?

Ответы [ 3 ]

1 голос
/ 10 марта 2012

Убедитесь, что при создании файла * .svc он не создает файл * .svc.cs. Если это так, удалите его и удалите атрибут CodeBehind из @ ServiceHost

1 голос
/ 23 мая 2011
<% @ServiceHost Language="C#" 
    Debug="true" Service="MyCompany.Communications.VSTOService" 
    Factory = "MyProject.Communications.IocServiceHostFactory" 
    CodeBehind="VSTOService.cs"%>

двигаться @ подписать с ServiceHost как <% @ServiceHost и, надеюсь, ваша ошибка будет устранена

0 голосов
/ 22 ноября 2013

Я видел, что мой файл SVC похож на

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

Не знаю, как тег привязки был вставлен под тегом servicehost, который вызывал проблему. после удаления тега привязки () исправлена ​​проблема «Пространство имен не может напрямую содержать такие элементы, как поля или метод»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...