(windows mobile连接Web service其实在网上有很多,尽管如此,我还是看了很久才明白,因为没有明确的图片,园子里我就是大致模仿http://www.cnblogs.com/cpcpc/archive/2011/02/16/2123064.html,这篇博客而操作的,在此只是写给自己以后看的。因为一开始总是连不上Web service,一直以为是配置文件的问题,后来才发现是WM的网络连接问题,另外windows mobile的开发只能在vs2008上进行)
首先,windows mobile的操作我也是新手,只是公司项目要用到这个,所以才来学习。二话不说,既是练习,那就先建两个项目再说,一个是Web service,一个是vs2008上面的智能设备:
项目添加好了,再把WCF服务搞定,以及windows mobile的界面及代码写好(这些就不多说了, 都是些很简单的代码)。做好这些之后,就是windows mobile的网络连接问题了。(申明下,windows mobile项目是可以添加web服务引用的,那要操作我也不知道有没有用,但是在这里是没有用的)
(1)、网络连接。打开vs2008上面的工具=》设备仿真管理器=》CHS Windows mobile 5.0 pocket PC R2 Emulator(下面那个我试过,但不知道为何连不上),单击右键连接。此时你的windows mobile模拟器就已经打开了。
接下来下载微软ActiveSync同步软件,下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=15,下载好之后,打开同步软件,
在所选仿真器CHS Windows mobile 5.0 pocket PC R2 Emulator单击右键,点击插入底座,之后ActiveSync软件会自动连接至windows mobile仿真器,并进行数据同步,如果你的电脑处于网络正常的情况下的话,同步之后,windows mobile也可以连接网络了,可以打开windows mobile内置ie浏览器,并打开网站了。
(2)发布WCF服务。我用的是windows server2003系统,自带IIS6.0,所以无须安装,先在IIS上面添加一个我的网站,直接将写好的wcf服务发布至IIS6.0上面,发布的时候注意,要把你iis上面的网站属性=》执行权限设置一下,默认是无的,设置为纯脚本即可,这样才可以执行aspx或asmx等文件。iis发布之后确认在浏览器中能打开你所写的服务:
(3)、生成WCF的代理类。上面两步做完之后,就可以利用微软工具生产Web service代理类了,下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=13442。安装完成之后,然后打开
![](http://images0.cnblogs.com/blog/246146/201303/13110853-56fc3faf658b49f98e8daa5eeafde037.png)
接下来把这两个文件复制到你的智能设备项目中去。然后在Frm_Load事件里面就可以调用Web service代理类,然后通过代理类,调用你的Web service了。
//GetDataSoapClient,这个类是用工具生成的,添加在项目里面的类,它在GetData.cs文件中 SMC.Binding binding = GetDataSoapClient.CreateDefaultBinding(); string remoteAddress = GetDataSoapClient.EndpointAddress.Uri.ToString(); //IP是IIS上自己写入网站的IP remoteAddress = remoteAddress.Replace("localhost", "192.168.1.124"); EndpointAddress endpoint = new EndpointAddress(remoteAddress); GetDataSoapClient client = new GetDataSoapClient(binding, endpoint); if (client.CheckLogin(txtUse.Text, txtPwd.Text)) { MessageBox.Show("登陆成功!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1); } else MessageBox.Show("登陆失败!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);
然后F5将其部署到之前的所选择的设备中,这样你的windows mobile就可以调用Web service并显示了。
另外,附上所有源码。还只是初学,里面也可能存在不少问题,还望各位能提出来,一起探讨。
附件下载:下载