【问题标题】:Consuming WCF web service in Silverlight在 Silverlight 中使用 WCF Web 服务
【发布时间】:2012-09-07 16:23:37
【问题描述】:

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

这是我的 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;
        }

我的网络服务实现如下:

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

但是我可以在 wcf 服务中得到结果。

【问题讨论】:

  • 您需要发布有关 Web 服务和配置(ClientConfiguration 和 Web.Config)的更多信息。
  • 公共字符串 GetUserName() { return System.Web.HttpContext.Current.User.Identity.Name.ToString(); }
  • 我在这里得到了值,但在消费时没有
  • 尝试连接服务时遇到什么错误?
  • 我在消费时没有收到任何错误我只是得到空

标签: wcf silverlight


【解决方案1】:

无论请求是否成功,Silverlight 网络服务都不会引发任何异常。但是,在您的回调中,您应该始终检查 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 会告诉你更多关于这个问题的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多