之前用模拟器测试过调用远程的WebService,发现总是提示“无法连接到远程服务器”的错误,不管是Windows Mobile6.0 还是6.5都是一样,按照网上的办法,改注册表,修改PDA的配置,安装虚拟网卡,我一一试了一遍,

都没有解决,可能是模拟器需要什么特殊的配置吧,晚一点继续摸索一下,现在先使用真机来测试一下。

1.首先新建测试的WebService服务,并将其发布在IIS或者服务器上面,我这里做了两个测试,一个是发布到本地IIS里面,一个是发布到服务器上面。

以下是我建立的两个测试Web服务。

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
/// <summary>
///WebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService
{
public WebService()
{ //如果使用设计的组件,请取消注释以下行
//InitializeComponent();
} [WebMethod]
public string GetString(string Num1,string Num2)
{
return (Convert.ToInt32(Num1) + Convert.ToInt32(Num2)).ToString();
} } /// <summary>
///WebServices 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
//public class WebServices : System.Web.Services.WebService
public class WebServices : DBHelper
{ public WebServices()
{ //如果使用设计的组件,请取消注释以下行
//InitializeComponent();
} [WebMethod(Description = "检查用户是否存在")]
public bool CheckUserExists(string UserName)
{
bool result = false;
string strSql = "SELECT COUNT(*) FROM SYS_UserInfo WHERE UserName='" + UserName + "'"; int i = Convert.ToInt32(base.GetScalar(strSql).ToString());
if (i > 0)
{
result = true;
}
return result;
}
}

这里就省略掉发布的过程了,先说一下新建智能设备程序的步骤:

1.新建项目--智能设备--智能设备项目--设置项目名称以及解决方案名称--确定

2.选择目标平台,这里有 Pokcet PC,Windows CE,Windows Mobile 5.0 SDK,Windows Mobile 6.0 SDK。具体的还要看

PC上面安装了哪些SDK。

3.选择.Net Compact FrameWork 版本,2.0/3.0等等。

4.选择项目模板,表示新建的项目是控制台程序还是引用程序或者是类库等等。

现在要做的就是在程序里面调用了,先将我们的WebService引用到项目中来,

项目--右键--添加Web引用--输入服务器IP,如果是本地的话直接点击“本地计算机上面的Web服务”--自己给它命名

并点击“添加引用”按钮,

操作成功之后可以在Web References里面看到我们的WebService了,

private void button1_Click(object sender, EventArgs e)
{
WebReference.WebServices wbs = new PPCWebS.WebReference.WebServices();//服务器上面的WebService
bool result = wbs.CheckUserExists(this.txtServerValue.Text.Trim());
if (result)
{
MessageBox.Show("用户:" + this.txtServerValue.Text.Trim() + "存在数据库中");
}
else
{
MessageBox.Show("用户:" + this.txtServerValue.Text.Trim() + "不存在数据库中");
}
} private void button3_Click(object sender, EventArgs e)
{
WebReference2.WebService w = new PPCWebS.WebReference2.WebService();//本地IIS里面的WebService
string Result = w.GetString(this.txtLocalhost1.Text.Trim(), this.txtLocalhost2.Text.Trim());
MessageBox.Show(this.txtLocalhost1.Text.Trim() + "+" + this.txtLocalhost2.Text.Trim() + "=" + Result);
}

小技巧:通过 Windows CE Remote Zoom-in(远程放大)可以捕获到智能设备的屏幕

开发的环境:IIS V5.1

             Visual Studio 2008专业版

                Windows Mobile 6.1 智能设备

                 Windows Mobile 6.0 SDK

PDA(Windows Mobile)调用远程WebService的更多相关文章

  1. Android程序使用SOAP调用远程WebService服务

    在现在的应用程序中.不可能不使用到网络,而且后台一定是有server作为支撑的. 现在最常见的调用方式有HTTP的GET .POST方式,返回JSON或者XML数据. 可是也有一种常见的形式就是调用W ...

  2. android调用 .net webService

    package com.rockcheck.mes; import android.os.AsyncTask; import android.support.v7.app.AppCompatActiv ...

  3. C#远程调用技术WebService葵花宝典

    一.课程介绍 直接开门见山吧,在学习之前阿笨想问大家一句,关于WebService远程过程调用技术(RPC) 你真的会了吗?不要跟老夫扯什么WebService技术已经过时,如果你的内心有在偷偷告诉你 ...

  4. Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法 转

    Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法   同事遇到一个很囧的问题,java调,netwebservice的时候,调用无参数方法成功,调用有参 ...

  5. 在windows后台调用webservice

    1.首先要创建个webservice,然后再webservice写一个方法如图 2.然后将WebService1.asmx 在浏览器中浏览会出现如图所示(该地址很重要,复制此地址在下边程序中要用到) ...

  6. C#远程调用技术WebService修炼手册

    一.课程介绍 一位伟大的讲师曾经说过一句话:事物存在即合理!意思就是说:任何存在的事物都有其存在的原因,存在的一切事物都可以找到其存在的理由,我们应当把焦点放在因果关联的本质上.所以在本次分享课开课之 ...

  7. vs2008,windows mobile 6 搭建PDA开发环境相关软件下载

    1.Windows Mobile 6.5 Professional Developer Tool Kit (CHS).msi 下载地址:https://download.microsoft.com/d ...

  8. 项目笔记---Windows Service调用Windows API问题

    概要 此文来自于最近一个“诡异”的Windows API调用发现Windows Service在调用某些Windows API的过程中失效,在经过漫长的Baidu,之后终于在StackOverFlow ...

  9. Windows服务调用Quartz.net 实现消息调度

    Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不牺牲 ...

随机推荐

  1. Spring Security安全框架入门篇

    一.Spring Security相关概念 1.1..Spring Security介绍: Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安 ...

  2. (Java)微信之个人公众账号开发(一)——进入开发者模式

    本篇文章将教大家如何建立微信个人公众账号,(注意:后台全部是用javaweb相关技术开发),大家知道,现在微信公众账号分服务号和订阅号,现在我要讲的主要是个人微信公众账号的建立以及后台的开发,个人公众 ...

  3. static 变量(静态变量)

    在C++的面向对象编程中,static还可以加在类的数据成员或成员函数之前.这样定义的数据成员或成员函数就被类所拥有,而不再属于类的对象. #include <iostream> usin ...

  4. Team Foundation Server 2015 Update 2.1 发布日志

    微软在 2016年5月5日发布了Visual Studio Team Foundation Server 2015 update 2.1. 下面我们来看看Update2.1中给我们带来了哪些新功能. ...

  5. GDAL库扩展Landsat系列MTL文件格式支持

    Landsat系列卫星提供的数据,一般都是每个波段一个tif文件,然后外加一个MTL.txt的元数据文件,使用gdal可以直接打开每个波段的tif文件,但是有时候想在打开tif数据的同时能够自动读取M ...

  6. [ExtJS5学习笔记]第八节 Extjs5的Ext.toolbar.Toolbar工具条组件及其应用

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/38515499 本文作者:sushengmiyan ------------------ ...

  7. Spark技术内幕:Master的故障恢复

    Spark技术内幕:Master基于ZooKeeper的High Availability(HA)源码实现  详细阐述了使用ZK实现的Master的HA,那么Master是如何快速故障恢复的呢? 处于 ...

  8. springMVC源码分析--国际化LocaleResolver(一)

    springMVC给我们提供了国际化支持,简单来说就是设置整个系统的运行语言,然后根据系统的运行语言来展示对应语言的页面,一般我们称之为多语言.springMVC国际化机制就是可以设置整个系统的运行语 ...

  9. linux中的网络通信指令

    1.write write命令通信是一对一的通信,即两个人之间的通信,如上图. 效果图 用法:write <用户名> 2.wall wall指令可将信息发送给每位同意接收公众信息的终端机用 ...

  10. 怎么对MySQL数据库操作大数据?这里有思路

    最近学到一招关于使用java代码操作MySQL数据库,对大文本数据(LOB)进行CRUD的技巧,虽然向数据库很少向中存入大文本文件(一般都是存储在硬盘上),但是还是很有必要知道这一技巧的.下面我就来说 ...