Метод службы WCF, возвращающий ноль - PullRequest
1 голос
/ 10 декабря 2010

У меня есть служба WCF, и когда я вызываю ее, строка возвращается нулевой, и я не могу понять, почему!

это код вызова:

new Thread(() =>
            {
                string returned = _client.Service.GetString();
                this.Dispatcher.BeginInvoke((Action)(() => MessageBox.Show(returned)));
            }).Start();

Этореализация сервиса:

    [ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.Single)]
class MyService: ServiceBase, IMyService
{
    public string GetString()
    {
        return "Returned";
    }

И это интерфейс:

    [ServiceContract]
public interface IMyService: IServiceBase
{
    [OperationContract]
    string GetString();
}

Код вызова просто возвращается с нулевым значением, но клиент подключается к службе нормально, я что-то упустил?

1 Ответ

1 голос
/ 10 декабря 2010

Если вы еще этого не сделали, вы можете настроить трассировку для WCF и получить много из файлов журнала. Не зная точно, как выглядит конфиг или как построен _client, я не могу сказать, что не так. Код, который вы разместили здесь, выглядит так, как будто он должен работать нормально.

<configuration>
   <system.diagnostics>
      <sources>
            <source name="System.ServiceModel" 
                    switchValue="Information, ActivityTracing"
                    propagateActivity="true">
            <listeners>
               <add name="traceListener" 
                   type="System.Diagnostics.XmlWriterTraceListener" 
                   initializeData= "WcfTraces.svclog" />
            </listeners>
         </source>
      </sources>
   </system.diagnostics>
</configuration>

Добавление этого в ваш app.config или web.config создаст файл WcfTraces.svclog в том же каталоге, что и файл конфигурации со всеми видами данных. Вы сможете дважды щелкнуть файл журнала, чтобы открыть его с помощью Microsoft Service Trace Viewer.

Настройка трассировки WCF

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