WCF服务方法返回null

时间:2010-12-10 10:22:58

标签: wcf

我有一个WCF服务,当我调用它时,字符串返回null并且我无法找出原因!

这是调用代码:

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();
}

调用代码只是返回null但是客户端连接到服务正常,我错过了什么?

1 个答案:

答案 0 :(得分:1)

如果您还没有,可以为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服务跟踪查看器打开它。

Configure WCF Tracing