`
zmo_xu
  • 浏览: 63597 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

[转]Microsoft Mobile访问WCF服务的例子

阅读更多

原文地址 http://www.po-soft.com/hi/csh/blog/418

Microsoft Mobile访问WCF服务的例子

 

      本文将介绍在PC上建立一个WCF服务,然后建立一个手机客户端程序来访问该WCF服务。涉及到的问题如下:

1.       如何在在PC上建立WCF服务,如何配置该服务;

2.       Window Mobile中如何正确访问网路,即网络的配置;

3.       最后,建立手机在Window Mobile中正确访问该WCF服务

 
本文的测试环境 VS2008, Windows2008
 
首先,在PC上建立WCF服务
这里建立一个简单的WCF服务,返回一句HelloWord。
首先建立一个服务契约:
服务契约
  1. [ServiceContract]   
  2.  public interface ILoginService   
  3.  {   
  4.      ///<summary>   
  5.      /// HelloWord!   
  6.      ///</summary>   
  7.      ///<returns></returns>   
  8.      [OperationContract]   
  9.      string GetHello(); 
 
 
实现服务:
实现服务
  1. [ServiceBehavior(IncludeExceptionDetailInFaults = true, InstanceContextMode = InstanceContextMode.PerCall)]   
  2. public class LoginService:ILoginService   
  3. {   
  4.     string ILoginService.GetHello()   
  5.     {   
  6.         return "Hello World! Welcome to 百洋软件研究实验室!";   
  7.     }   
  8. }  
 
WCF配置:
XML/HTML代码
  1. <?xml version="1.0" encoding="utf-8" ?>  
  2. <configuration>  
  3.     <system.serviceModel>  
  4.       <behaviors>  
  5.         <serviceBehaviors>  
  6.           <behavior name="MyServiceTypeBehaviors">  
  7.             <serviceMetadata httpGetEnabled="true"  httpGetUrl="http://localhost:8888/LoginService" />  
  8.           </behavior>  
  9.         </serviceBehaviors>  
  10.       </behaviors>  
  11.          
  12.         <services>  
  13.             <service name="WCFDemo.LoginService" behaviorConfiguration="MyServiceTypeBehaviors">  
  14.                 <endpoint address="" binding="basicHttpBinding" contract="WCFDemo.ILoginService"/>                 
  15.                 <host>  
  16.                     <baseAddresses>  
  17.                         <add baseAddress="http://localhost:8888/LoginService" />                      
  18.                     </baseAddresses>  
  19.                 </host>  
  20.             </service>  
  21.         </services>  
  22.     </system.serviceModel>  
  23. </configuration>  
 
测试WCF 服务是否发布成功
 
在浏览器中输入 http://localhost:8888/LoginService 回车,如果出现如下的界面表示发布成功。
 
到此WCF服务建立完毕,下面是建立手机应用程序,并调用该WCF服务程序。
 
配置移动设备能够上网
 
下面,配置移动设备的联网状况,使之能够访问PC上的WCF服务。Vista或2008
 
1. 安装Microsoft Virtual PC 2007或以上版本
 
安装Microsoft Virtual PC 2007的目的就是安装Virtual Machine Network Services Driver。下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=04D26402-3199-48A3-AFA2-2DC0B40A73B6&displaylang=en
安装 Microsoft Windows Mobile Device Center 6 for Windows Vista (32-bit) - 简体中文。下载地址:http://www.microsoft.com/downloads/details.aspx?familyid=83d513ea-9df9-4920-af33-3a0e2e4e7beb&displaylang=zh-cn
安装完成后,在控制面板会出现一个图标。
 
3. 开始连接上网
4. 运行Visual Studio 2008,打开“工具 -> 设备仿真器管理器”,右键单击“CHS Windows Mobile 5.0 Pocket PC R2 Emulator”,选择“连接”,然后选择“插入底座”。
 
5. 配置Windows Mobile 5.0 emulator
这个时候Windows Mobile 5.0 emulator已经打开了,你可以看到一个很真实的Windows Mobile 5.0模拟器界面,当然是多了一些菜单的。选择“文件 -> 配置”,选择“网络”选项卡,选中“启用 NE2000 PCMCIA 网络适配器并绑定到(N)”,下拉菜单中选择“连接的网卡”或者你当时用来上网那块网卡。
 
6. 配置Windows Mobile 设备中心
移动设备第一次插入PC的时候,会自动弹出设置窗口,或者在控制面板中,点击mobile 设备中心,手动配置。本文按照下面配置。
下图是连接成功后
7. 配置Windows Mobile 5.0系统IP地址
这个时候就是在Windows Mobile 5.0系统中配置了,“开始 -> 设置 -> 连接(选项卡) -> 网卡”,我的网卡连接到“默认单位设置”,下面选择“NE2000 兼容 Ethernet 驱动程序”,输入一个IP地址就行了,根据你的网络来输入即可。然后点击“ok”保存关闭。然后在Windows Mobile 5.0 emulator找到“文件 -> 保存状态并退出”。再次启动Windows Mobile 5.0 emulator,你进入Windows Mobile 5.0打开IE浏览器,看看是不是能上网了?!
 
建立一个移动设备应用程序
新建->项目->智能设备项目。
移动设备调用PC WCF服务
首先 ,下载一个工具,Power Toys for .NET Compact Framework 3.5 , 下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=c8174c14-a27d-4148-bf01-86c2e0953eab&displaylang=en  该工具能够自动生成WCF的代理类。
    安装完成后,打开目录找到
C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\bin 文件夹下的netcfSvcUtil.exe文件。在该目录建立一个bat文件,或者使用dos命令,转到该目录。  
netcfSvcUtil.exe /language:cs http://192.168.1.2:8888/LoginService
http://192.168.1.2:8888/LoginService 是我们WCF元数据的发布地址,当然了前提是WCF服务已经在运行。
运行之后,在该目录下生成两个文件:LogService.cs(我们的服务代理类), 另一个CFClientBase.cs 文件。将这两个文件附加到,刚建立的移动设备工程中去。
Form中添加一Button
button 的双击打开事件中,调用WCF.
C#代码
  1. using System;   
  2. using System.Linq;   
  3. using System.Collections.Generic;   
  4. using System.ComponentModel;   
  5. using System.Data;   
  6. using System.Drawing;   
  7. using System.Text;   
  8. using System.Windows.Forms;   
  9. using SMC = System.ServiceModel.Channels;   
  10. using System.ServiceModel;   
  11.     
  12. namespace SmartDeviceProject2   
  13. {   
  14.     public partial class Form1 : Form   
  15.     {   
  16.         public Form1()   
  17.         {   
  18.             InitializeComponent();   
  19.         }   
  20.     
  21.         private void button1_Click(object sender, EventArgs e)   
  22.         {   
  23.             SMC.Binding binding = LoginServiceClient.CreateDefaultBinding();   
  24.             string remoteAddress = LoginServiceClient.EndpointAddress.Uri.ToString();   
  25.             remoteAddress = remoteAddress.Replace("localhost""192.168.1.2");   
  26.             EndpointAddress endpoint = new EndpointAddress(remoteAddress);   
  27.             LoginServiceClient client = new LoginServiceClient(binding, endpoint);   
  28.             MessageBox.Show(client.GetHello());   
  29.         }   
  30.     }   
  31. }   
 最后部署,到该移动设备。
 
后记,该移动设备程序调用WCF,从服务端 元数据的开放地址获取,生成代理类, 来使用。
 
附上源码。

 

分享到:
评论

相关推荐

    WCF 各种例子

    **Windows Communication Foundation (WCF) 是微软.NET框架中用于构建分布式应用程序的重要组件。它提供了一组全面的服务模型,用于创建可互操作的、安全的、可靠的服务。在本压缩包中,你将找到一系列C#编写的WCF...

    java 访问 wcf 示例(使用的HttpClient)

    Java访问WCF服务是跨平台通信的一个典型场景,其中WCF(Windows Communication Foundation)是微软提供的一个用于构建、部署和管理服务的框架。本示例将重点讲解如何使用Java的HttpClient库来调用WCF服务。 一、WCF...

    WCFService可以通过web调用和WCF服务访问

    在标题和描述中提到的“WCFService可以通过web调用和WCF服务访问”,这意味着该服务已经配置为允许两种不同的调用方式。 1. **Web调用**:WCF服务可以通过HTTP协议暴露为Web服务,允许任何支持SOAP协议的客户端进行...

    WCF服务简单实例WCF服务简单实例

    Windows Communication Foundation(WCF)是微软.NET Framework中的一种技术,用于构建可互操作的、安全的、可靠的服务。WCF整合了.NET Framework中的多种通信技术,如ASMX、Remoting、Web Services等,提供了一种...

    ajax访问wcf服务

    而WCF(Windows Communication Foundation)是微软提供的一种全面的、统一的编程模型,用于构建面向服务的应用程序。通过将Ajax与WCF结合,我们可以实现前端JavaScript与后端C#服务的无缝交互。 1. **Ajax基础** -...

    Android访问WCF服务源码(Android 客户端)

    WCF(Windows Communication Foundation)是微软提供的一种服务导向架构,用于构建高度可互操作的、面向服务的应用程序。本篇将深入探讨如何在Android客户端中访问WCF服务,并以源码为例进行解析。 1. **Android与...

    WCF简单例子(入门必看)

    Windows Communication Foundation(WCF)是微软.NET框架中用于构建分布式应用程序的一种服务导向架构。它提供了一种统一的方式,用于创建、部署和管理跨平台、跨网络的服务。本例子旨在为初学者提供一个基础的WCF...

    VB6中访问WCF 示例代码

    在VB6中访问WCF(Windows Communication Foundation)服务是一项技术挑战,因为VB6不直接支持WCF的现代通信协议。然而,通过使用一些特定的工具和技术,如Soap Toolkit 3.0,我们可以实现这一目标。以下是一些关于...

    WCF例子,WCF例子,WCF例子,WCF例子

    Windows Communication Foundation(WCF)是微软.NET框架中的一个核心组件,用于构建高度可配置的、安全的、可靠的分布式应用程序。WCF集成了多种通信技术,如Web服务、消息队列和Remoting,提供了一种统一的方式来...

    WCF例子(vs2008开发)

    **WCF(Windows Communication Foundation)**是微软.NET框架下的一个组件,用于构建、配置和部署服务。本示例是基于Visual Studio 2008进行开发的,旨在帮助初学者理解并掌握WCF服务的基本概念和操作。在这个压缩包...

    Android访问WCF服务源码(WCF服务端)

    WCF(Windows Communication Foundation)是微软推出的一种面向服务的通信框架,用于构建高度互操作的、面向服务的应用程序。本篇将深入探讨如何在Android应用中访问WCF服务,以及涉及到的关键知识点。 首先,了解...

    JS跨域调用WCF服务实例(WCF服务宿主到控制台)

    JavaScript(JS)与Windows Communication Foundation(WCF)服务之间的跨域调用是Web开发中常见的需求,尤其是在构建分布式系统和前后端分离的应用时。本文将详细介绍如何实现JS跨域调用WCF服务,并通过一个控制台...

    WCF简单例子

    **WCF(Windows Communication Foundation)**是微软推出的一种面向服务的通信框架,它提供了一种统一的方式来构建分布式应用程序。在本示例中,我们将深入探讨如何使用C#、WCF和Visual Studio(VS)创建一个简单的...

    WCF入门例子(自己写的HelloWorld)适合新手

    **WCF(Windows Communication Foundation)**是微软.NET框架下的一种面向服务的通信技术,它提供了一种统一的方式来构建分布式应用程序,使得服务可以跨多种传输协议、编程模型和安全环境进行通信。WCF允许开发者...

    MFC程序访问WCF服务

    本示例共包含四个模块,演示了C# WinForm承载WCF服务程序集,再使用C#程序集封装了对该WCF的访问API,然后在MFC对话框程序中封装的API,成功实现了对WCF的访问。 环境:VC++2010

    wcf实例,调用wcf服务的例子

    WCF(Windows Communication Foundation)是微软.NET框架下的一种面向服务的通信架构,它提供了一种构建、配置和服务间通信的强大工具。在这个“wcf实例,调用wcf服务的例子”中,我们可以深入学习如何在Visual ...

    WCF for Windows Mobile 6

    ### WCF在Windows Mobile 6中的应用:移动设备上的服务通信 #### WCF与Windows Mobile 6:概览 WCF(Windows Communication Foundation)是一种框架,用于构建在各种环境中进行安全可靠的互操作通信的服务。在...

    如何在windows服务中寄宿wcf服务的例子

    WCF(Windows Communication Foundation)是微软.NET框架中的一个核心组件,用于构建高度可配置、安全、可靠的分布式应用程序。本文将详细介绍如何在Windows服务中寄宿WCF服务,以实现后台运行的服务通信。 首先,...

    无配置调用WCF服务

    **无配置调用WCF服务** 在传统的WCF(Windows Communication Foundation)服务开发中,配置文件(如app.config或web.config)是不可或缺的一部分,它们用于定义服务的终结点、绑定、行为等信息。然而,有时候为了...

    一个简单的WCF例子

    **WCF(Windows Communication Foundation)**是微软.NET框架下的一种面向服务的通信技术,它提供了一种统一的方式来构建分布式应用程序,允许不同的系统和服务之间进行安全、可靠、可管理的通信。在本文中,我们将...

Global site tag (gtag.js) - Google Analytics