之前用模拟器测试过调用远程的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. How to kill a particular user terminal on Linux

    Intro. Sometimes, the application we launched from command promp failed to exit. What we require is ...

  2. python将nan, inf转为特定的数字

    最近,处理两个矩阵的点除,得到结果后,再作其他的计算,发现有些内置的函数不work:查看得到的数据,发现有很多nan和inf,导致python的基本函数运行不了,这是因为在除的过程中分母出现0的缘故. ...

  3. PHP+MySQL 分页那点事

    分页技术随处可见,这可以算得上是最为基础的网站功能了.于是今天尝试着用PHP来实现一个分页的小例子. 准备工作 环境准备 Apache MySQL PHP 工作环境 数据库准备 建库 建表 预存数据 ...

  4. Android应用UI设计流程

    Android应用UI设计流程 设计原理 1.在移动设计中,使用环境是最关键的因素.原型设计方法必须考虑尺寸因素 2.用户测试必须涵盖运动.声音和多点触控等方面: 进行移动设计和测试时,请将你知道的有 ...

  5. 2.关于QT中的Dialog(模态窗口),文件选择器,颜色选择器,字体选择器,消息提示窗口

     1 新建一个空项目 A 编写 .pro文件 QT += gui widgets HEADERS += \ MyDialog.h SOURCES += \ MyDialog.cpp B 编写MyD ...

  6. 1.关于QT中的Graphics绘图,定时器,动画,将窗口中的内容打印到图片上,打印机,打印预览

     1 新建项目 A  修改pro中的内容如下: HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets prints ...

  7. testng的使用

    TestNG教程 TestNG是一个测试框架,其灵感来自JUnit和NUnit,但同时引入了一些新的功能,使其功能更强大,使用更方便. TestNG设计涵盖所有类型的测试:单元,功能,端到端,集成等, ...

  8. 剑指Offer——二叉树

    剑指Offer--二叉树 前言 数据结构通常是编程面试中考察的重点.在参加面试之前,应聘者需要熟练掌握链表.树.栈.队列和哈希表等数据结构,以及它们的操作.本片博文主要讲解二叉树操作的相关知识,主要包 ...

  9. 控制成本,控制成本知识点,挣值和实际成本、EAC,ETC.TCPI解析表

  10. Java基础---Java---正则表达式-----匹配、切割、替换、获取等方法

    正则表达式:符合一定规则的表达式 作用:用于专门操作字符串 特点:用于一些特定的符号来表示一些代码操作,这样就简化书写,主要是学习一些特殊符号的使用 好处:可以简化对字符串的复杂操作. 弊端:符号定义 ...