zoukankan      html  css  js  c++  java
  • WCF创建简单程序

    1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序。建立完成后如下图所示:

    wcf

      2.删除系统生成的两个文件IService1.cs与Service1.svc,当然你也可以直接在这两个自动生成的文件中编码。

      3.添加自定义的WCF【服务文件】User.svc,此时vs2010会自动生成WCF接口文件IUser.cs,我们在IUser中定义WCF方法ShowName,在User.svc.cs对该接口的方法进行实现。代码如下:

    using System.ServiceModel;
    
    namespace WCFService
    {
        [ServiceContract]
        public interface IUser
        {
            [OperationContract]
            string ShowName(string name);
        }
    }
    
    
    namespace WCFService
    {
        public class User : IUser
        {
            public string ShowName(string name)
            {
                string wcfName = string.Format("WCF服务,显示姓名:{0}", name);
                return wcfName;
            }
        }
    }

    大家可以看到,在WCF中的接口与普通接口的区别只在于两个特性,其他的和我们正常学习的接口一样。定义这两个特性要添加System.ServiceModel的引用。

    [ServiceContract],来说明接口是一个WCF的接口,如果不加的话,将不能被外部调用。

    [OperationContract],来说明该方法是一个WCF接口的方法,不加的话同上。 

    此时我们的第一个WCF服务程序就建立好了,将User.svc“设为起始页”,然后F5运行一下试试,如下图所示,VS2010自动调用了WCF的客户端测试工具以便我们测试程序:

      我们双击上图中的 ShowName() 方法,出现如下图:

      在请求窗口中的值中输入参数“你的姓名”,然后点击“调用”,在响应窗口中会出现返回值“WCF服务,显示姓名:你的姓名”,说明测试成功,点击下面的XML也可以看到XML的数据传输。我们现在建立好了服务的应用程序和业务逻辑,即非常简单的打印姓名的方法,测试也成功了。那么我们怎么用呢?

    我们可以在WCF测试客户端窗口长看到WCF服务的地址:http://localhost:2059/User.svc

    我们可以在其他项目中添加服务引用来添加WCF服务,当然也可以把WCF服务发布到IIS上,然后然别人去调用。

    接下来我们就以发布到IIS为例:

    首先我们将WCF应用程序发布一下,然后部署在B服务器的IIS之上,如下图所示:

      鼠标右键浏览Uesr.svc,在游览器中出现如下图所示,说明服务部署成功。

       上图中的http://localhost/User.svc?wsdl即为我们要引用的服务地址。因为我们的IIS是在同一台计算机上,所以是localhost

    我们这里以Web应用程序为例。

      新建解决方案,并且创建ASP.NET Web应用程序的项目。命名为:WCFClient,如下图所示:

      (1)新建Asp.net页面,命名为:WcfTest.aspx。

      (2)添加在第五步中部署的服务的引用。如下图所示:

    wcf

      此时弹出添加服务引用的窗体,如下图所示:

      我们在地址里写上我们寄宿在IIS上的WCF服务的地址服务路径,此处为:http://localhost/User.svc?wsdl,在名称空间处填写WCFService[此名称空间要在下面的客户端中引用]然后点击“前往”-->“确定”按钮。此时我们完成了对服务的引用。我们再次查看解决方案,里面多了Service References的文件夹,通过资源管理器打开后里面多了些文件,这些文件用于客户端向服务端的调用,现在先不用管他。

    WcfTest.aspx.cs的代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    //引用WCF服务的名称空间
    using WCFClient.WCFService;
    
    namespace WCFClient
    {
        public partial class WCFTest : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
    
            protected void btnClick(object sender, EventArgs e)
            {
                UserClient user = new UserClient();
                string result = user.ShowName(this.txtName.Text);
                Response.Write(result);
            }
        }
    }
  • 相关阅读:
    独立思考者模型:识别媒体与砖家的谎言 对精确性的痴迷
    独立思考者模型:你相信灵魂转世假说吗? 一次统计的头脑风暴
    独立思考者模型:如何分辨信息的真伪 不要再被虚假信息蒙骗
    独立思考者模型:寻找潜藏在表象背后的真相 探寻真相的方法
    独立思考者模型:避开思维误区的沼泽 我们很多时很蠢
    独立思考者模型:用专家的思维思考问题 从阅读到吸收再到模型建立
    独立思考者模型:如何科学地思考 掌握更正确的思维方式
    eclipse从svn检出项目
    网络通讯框架MINA和XSCOCKET的简单比较
    浏览器的渲染原理简介
  • 原文地址:https://www.cnblogs.com/tianguook/p/4196861.html
Copyright © 2011-2022 走看看