博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
wcf 学习1:搭建服务
阅读量:6643 次
发布时间:2019-06-25

本文共 3274 字,大约阅读时间需要 10 分钟。

一:创建一个解决方案

1:分别添加:控制台应用程序:Hosting(宿主)、控制台应用程序:Client(客户端)、类库:Service (服务)、类库:Contract(契约)

2:添加契约:

右击contract项目,添加接口 ICalcultor

[ServiceContract(Name = "CalcultorService", Namespace = "http://www.artech.com")]  注意:http://www.artech.com   不能写成 http://www.artech.com/                public interface ICalculator    {        [OperationContract]        double Add(double x, double y);        [OperationContract]        double Subtract(double x, double y);        [OperationContract]        double Multiply(double x, double y);        [OperationContract]        double Divide(double x, double y);    }

  3:添加服务

右击Service项目,添加类:Calcutor

public class CalcultorService : ICalculator    {        public double Add(double x, double y)        {            return x + y;        }        public double Subtract(double x, double y)        {            return x - y;        }        public double Multiply(double x, double y)        {            return x * y;        }        public double Divide(double x, double y)        {            return x / y;        }    }

  

4:配置Hosting(宿主)

编程方式配置:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;using System.ServiceModel.Description;using WCFContract;using WCFService;namespace Host3_26{    class Program    {        static void Main(string[] args)        {            using (ServiceHost host = new ServiceHost(typeof(CalcultorService)))            {                host.AddServiceEndpoint(typeof(ICalculator), new WSHttpBinding(), "http://127.0.0.1:9999/CalcultorService");                if (host.Description.Behaviors.Find
() == null) { ServiceMetadataBehavior behavior = new ServiceMetadataBehavior(); behavior.HttpGetEnabled = true; behavior.HttpGetUrl = new Uri("http://127.0.0.1:9999/CalcultorService/metadata"); host.Description.Behaviors.Add(behavior); } host.Opened += delegate { Console.WriteLine("CalcultorService已经启动,按任意键终止服务!!"); }; host.Open(); Console.Read(); } } }}

  管理方式配置宿主:

  5:发布宿主

6:客户端添加服务

在宿主已经运行的情况下,右击客户端添加服务,路径:

http://127.0.0.1:9999/CalcultorService/metadata cs代码
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Client3_26.ServiceReference1;namespace Client3_26{    class Program    {        static void Main(string[] args)        {            using (CalcultorServiceClient pro = new CalcultorServiceClient())            {                Console.WriteLine(pro.Add(1, 1));                Console.Read();            }
}    }}

 

//客户端调用服务方法2:1:引用契约 using WCFContract;2:修改配置文件:       
3:开始调用using (ChannelFactory
channe = new ChannelFactory
("defaultEndpoint")){          WCFContract.ICalculator ca = channe.CreateChannel();          Console.WriteLine(ca.Add(1, 2));};

 

转载于:https://www.cnblogs.com/wzq806341010/archive/2013/03/26/2983612.html

你可能感兴趣的文章
RabbitMQ使用详解
查看>>
js 特效
查看>>
Python tuple 函数
查看>>
xftp上传文件失败,执行程序发现磁盘满了:No space left on device
查看>>
Ext Js 6.2.1 classic grid 滚动条bug解决方案
查看>>
Linux(Centos )的网络内核参数优化来提高服务器并发处理能力【转】
查看>>
spring中scope作用域(转)
查看>>
RDA CoreDump 实例
查看>>
Struts2中Struts.xml的作用
查看>>
Delphi调用JAVA的WebService上传XML文件(XE10.2+WIN764)
查看>>
kong nginx 配置文件说明&&借鉴
查看>>
有线无线网卡工作模式
查看>>
C# Barrier 实现
查看>>
更改 Windows VM 的可用性集
查看>>
领域驱动设计(DDD)部分核心概念的个人理解
查看>>
linux 查看机器内存方法 (free命令)
查看>>
Ubuntu 14.04 下 android studio 安装 和 配置【转】
查看>>
Spring Boot使用模板freemarker【从零开始学Spring Boot(转)
查看>>
【微信公众平台开发】微信刮刮乐,解决三星兼容性问题
查看>>
python模块之configparser
查看>>