有一段时间,我的团队一直在使用WCF服务(在wsHTTP绑定上自托管),以及与之通信的ASP网站。 WCF服务中的所有方法都是同步调用的,并且没有来自网站的错误。
但是,随着Windows Phone 8应用程序的增加,引入了一个复杂的问题:无法同步调用WCF方法,必须异步调用它们。即使没有异步,WP8也不提供这些方法的同步版本。方法已在WCF中定义。
这引入了在不实际修改服务代码的情况下使用此wcf服务的挑战。这可能吗?如果没有,如何修改WCF实现以支持异步方法调用?是否有可用于解决此特定问题的资源?我整个下午一直在寻找,但这似乎是一个非常具体的问题。
非常感谢任何帮助。
答案 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;
}
也许这篇文章会帮助你: