在Windows Phone 8中使用WCF服务:异步方法?

时间:2014-09-12 12:06:09

标签: .net wcf windows-phone-8 asynchronous visual-studio-2013

有一段时间,我的团队一直在使用WCF服务(在wsHTTP绑定上自托管),以及与之通信的ASP网站。 WCF服务中的所有方法都是同步调用的,并且没有来自网站的错误。

但是,随着Windows Phone 8应用程序的增加,引入了一个复杂的问题:无法同步调用WCF方法,必须异步调用它们。即使没有异步,WP8也不提供这些方法的同步版本。方法已在WCF中定义。

这引入了在不实际修改服务代码的情况下使用此wcf服务的挑战。这可能吗?如果没有,如何修改WCF实现以支持异步方法调用?是否有可用于解决此特定问题的资源?我整个下午一直在寻找,但这似乎是一个非常具体的问题。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

只有客户端调用/代码是异步的,服务器操作调用仍然是同步的......

客户代码:

var svc = new ServiceReference1.Service1Client();
svc.GetDataCompleted += (s, a) =>
{
    MessageBox.Show(a.Result);
};
svc.GetDataAsync(42);

服务器代码:

[OperationContract]
public string GetData(int value)
{
    return "hello world: " + value; 
}

也许这篇文章会帮助你: