zoukankan      html  css  js  c++  java
  • 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并显示了。

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

     附件下载:下载

  • 相关阅读:
    软件测试人员的年终绩效考核怎么应对
    收藏
    顶踩组件 前后两版
    订阅组件
    hdu 1963 Investment 完全背包
    hdu 4939 Stupid Tower Defense 动态规划
    hdu 4405 Aeroplane chess 动态规划
    cf 414B Mashmokh and ACM 动态规划
    BUPT 202 Chocolate Machine 动态规划
    hdu 3853 LOOPS 动态规划
  • 原文地址:https://www.cnblogs.com/zjw112/p/2957286.html
Copyright © 2011-2022 走看看