在Silverlight中使用WCF Web服务

问题描述:

我无法从WCF Web服务中检索结果。结果总是null在Silverlight中使用WCF Web服务

这里是我的Silverlight客户端代码:

TTServiceClient client1 = new TTServiceClient(); 
      client1.GetUserNameCompleted += new EventHandler<GetUserNameCompletedEventArgs>(client1_GetUserNameCompleted); 
      client1.GetUserNameAsync(); 

void client1_GetUserNameCompleted(object sender, GetUserNameCompletedEventArgs e) 
     { 
      txtUserName.Text = e.Result; 
     } 

我的Web服务实现的样子:

public string GetUserName() 
{ 
    return System.Web.HttpContext.Current.User.Identity.Name.ToString(); 
} 

但是我能够得到的结果在WCF服务。

+0

您需要发布有关Web服务和您的配置(ClientConfiguration以及Web.Config)的更多信息。 –

+0

public string GetUserName() { return System.Web.HttpContext.Current.User.Identity.Name.ToString(); } – neo

+0

我在这里获取值但不在消费时 – neo

无论请求是否成功,Silverlight Web服务都不会抛出任何异常。在你的回调,你应该,但是,始终检查错误的eventargs e.Errors,你的情况是这样的:

void client1_GetUserNameCompleted(object sender, GetUserNameCompletedEventArgs e) 
{ 
    if(e.Error != null) 
    { 
     throw new Exception("Web service error: " + e.Error.Message); 
    } 
    else 
    { 
     txtUserName.Text = e.Result; 
    } 
} 

据称e.Error会告诉你更多的问题。