windows mobile 5.0连接Web service全过程

(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。安装完成之后,然后打开

C:/Program Files/Microsoft.NET/SDK/CompactFramework/v3.5/bin 文件夹下的netcfSvcUtil.exe文件(这就是你之前安装的文件,它会自带安装在此目录)。在该目录建立一个bat文件,或者使用dos命令,转到该目录。netcfSvcUtil.exe /language:cs http://192.168.1.124/GetData.asmx 后面的网址路径是你发布的IIS上面服务的全地址。执行完之后会在同一目录下生成两个文件:
 

接下来把这两个文件复制到你的智能设备项目中去。然后在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并显示了。

另外,附上所有源码。还只是初学,里面也可能存在不少问题,还望各位能提出来,一起探讨。

 附件下载:下载

posted @ 2013-03-13 11:21  码上的阿Q  阅读(896)  评论(4编辑  收藏  举报