如何从智能设备应用程序进行WCF服务的异步调用?

时间:2012-06-20 00:53:35

标签: c# wcf asynchronous windows-mobile compact-framework

我正在开发一个智能设备应用程序,它将通过wi-fi与wcf服务进行通信。由于没有选项将服务引用添加到智能设备项目中,因此我决定使用NetCFSvcUtil.exe。一切都很棒!

但是...

最后,我了解应用程序必须在后台与服务进行交互。 阅读了这篇文章Microsoft .NET Compact Framework Background Processing Techniques。我决定使用异步Web服务调用。有http://msdn.microsoft.com/ru-ru/library/aa347733.aspx我找到了/ async参数,但它似乎不适用于NetCFSvcUtil.exe。

如何获取智能设备应用程序的异步代理?有没有办法生成它或者我希望用自己的双手向界面添加异步方法?也许适合.Net CF在我的情况下使用SvcUtil.exe来生成异步代理?

2 个答案:

答案 0 :(得分:0)

更多信息,例如您用于构建智能手机应用程序的平台将会有所帮助。

我已经完成了Blackberry开发并使用了Web服务。您可以通过两种方式构建Web服务

  1. RestFul服务 - 消费Web服务非常简单。发布数据可能会有点痛苦,因为多部分表单数据在Wcf中发布为流 - Rest Starter Kit

  2. 肥皂服务 - 如果您决定使用SOAP,那么对于黑莓和Android,您必须使用预先验证的KSOAP -2在您的应用和Web服务之间发送和接收肥皂消息。如果您决定使用KSOAP -2,请返回ASMX服务。不知何故,WCF服务不与KSOAP -2通信(由于SOAP版本或其他东西的变化),因为简单的ASMX服务工作非常顺利。您可以使用几十篇文章来学习如何使用KSOAP

  3.   

    他最初的想法是在Windows服务中托管它......

    Windows服务永远不会面向Web。如果你想要任何面向Web的东西,你需要一个Web服务器!

答案 1 :(得分:0)

最终它奏效了。 "添加网络参考"工具使用Begin / End异步方法创建代理,并且代理通过代理的URL属性与由简单控制台应用程序(稍后是Windows服务)托管的wcf服务进行交互。