полу Решено
Похоже, что проблема существует только при работе в режиме отладки,
и только при запуске команд через окна непосредственного просмотра / наблюдения.
Просто так работает.
Спасибо за ответы.
Я пытаюсь использовать службу WCF из приложения .net 2.0.
Я добавил его как веб-ссылку, класс появился в intellisense.
Но вызов метода из службы возвращает ошибку
Cannot call <method> because it is a web method
Услуги
[ServiceContract]
[AspNetCompatibilityRequirments(RequirmentsMode = ApsNetCompatibilityRequirments.Allowed)]
public class ConsumerResponder
{
[OperationConract]
public List<string> GetStrings(int a, int b, int c)
{
return new List<string>{"hi"};
}
}
Сервисы web.config
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.ServiceModel>
<behaviors>
<endpointBehaviors>
<behavior name="bh1">
<endpointDiscovery enabled="true" />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior>
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceMetada httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<services>
<service name="Service.ConsumerResponder">
<endpoint address="" behaviorConfiguration="bh1" binding="basicHttpBinding" contract="Service.ConsumerResponder" />
<endpoint address="mex" binding="wsHtppBinding" contract="IMetadataExchange" />
</service>
</services>
</system.ServiceModel>
</configuration>
Использование
using(ConsumerResponder cf = new ConsumerResponder())
{
List<string> result = cf.GetStrings(1, true, 2, true, 3, true);
}
Протестировано из других мест и в режиме отладки, и служба действительно возвращает значения.