WCF简单使用

1.下面通过一个简单的服务示例来认识WCF
1.新建项目,名称IBLL,解决方案名称WcfDemo,模板选择类库
2.修改Class1.cs文件名称为 IUserInfoService.cs
3.添加引用 System.ServiceModel
4.修改IUserInfoService.cs代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;

namespace IBLL
{
    [ServiceContract]
    public interface IUserInfoService
    {
        [OperationContract]
        int Add(int a, int b);
    }
}

我们定义了一个IUserInfoService接口,注意在接口上申明了ServiceContract特性,即服务契约,表明该接口是一个服务。方法上声明了OperationContract特性,表示该方法是IUserInfoService的一个服务方法,客户端可远程调用该方法

5.新建项目,名称BLL,模板选择类库,修改Class1.cs文件名称为 UserInfoService.cs,引用项目IBLL,代码如下:

using IBLL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BLL
{
    public class UserInfoService : IUserInfoService
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    }
}

OK,到此我们的服务代码已经编写完成,下面我们必须为服务提供一个运行的宿主,通过该宿主程序来启动我们的服务。
6.在同一解决方案下新建一个项目,名称为WcfHost,类型为控制台应用程序

7.WcfHost项目中添加引用,引用项目IBLL,然后再添加引用:System.ServiceModel

8.修改Program.cs代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;

namespace WcfHost
{
    class Program
    {
        static void Main(string[] args)
        {
            using (ServiceHost host = new ServiceHost(typeof(BLL.UserInfoService)))
            {
                host.Open();
                Console.WriteLine("服务已启动");
                Console.ReadKey();
                host.Close();
            }
        }
    }
}

以上,我们已经实现了服务以及为服务提供了一个运行宿主,即契约部分已经完成,下面我们为服务指定地址及绑定
9.修改app.config内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>

      <service name="BLL.UserInfoService" behaviorConfiguration="behaviorConfiguration"><!--服务的对象-->
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8000/"/><!--服务的IP和端口号-->
          </baseAddresses>
        </host>
        <endpoint address="" binding="basicHttpBinding" contract="IBLL.IUserInfoService"></endpoint><!--contract:服务契约-->
      </service>
    </services>

    <behaviors>
      <serviceBehaviors>
        <behavior name="behaviorConfiguration">
          <serviceMetadata httpGetEnabled="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

10.设置WcfHost项目为启动项目,启动调试。控制台上显示服务已启动后,打开浏览器输入服务地址:http://localhost:8000/ ,浏览器中会打开我们的服务页面,这表示我们的服务已经启动成功,客户端可通过该地址访问我们的服务了。
下面,我们将创建一个客户端来访问我们的服务
11.在同一解决方案下新建一个项目,名称为WcfClient,类型为控制台应用程序,添加服务引用地址:http://localhost:8000/,客户端代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WcfClient
{
    class Program
    {
        static void Main(string[] args)
        {
            ServiceReference1.UserInfoServiceClient client = new ServiceReference1.UserInfoServiceClient();
            Console.WriteLine(client.Add(3, 4));
            Console.ReadKey();
        }
    }
}

12.启动WcfHost,启动WcfClient,(记得找到bin/debug找.exe以管理员运行

时间: 2024-10-17 10:51:09

WCF简单使用的相关文章

C# WCF简单入门图文教程(VS2010版)

C# WCF简单入门图文教程(VS2010版) 作者:丶一二丶 字体:[增加 减小] 类型:转载 时间:2016-03-17我要评论 这篇文章主要介绍了WCF简单入门图文教程,版本是VS2010版,帮助大家轻松学习了解DataContract.ServiceContract等特性,感兴趣的小伙伴们可以参考一下 在这个例子中我们将使用VS2010创建一个WCF服务,其中会了解[DataContract][ServiceContract]等特性. 内置的WCFSVCHost,并使用“WCF测试客户端

C# 一个WCF简单实例

C# 一个WCF简单实例 作者: 字体:[增加 减小] 类型:转载 时间:2012-10-27我要评论 以订票为例简单应用wcf程序,需要的朋友可以参考下 WCF实例(带步骤) 复制代码代码如下: <xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" /> 本篇转自百度文档,自己试过,确实可以用. 以订票为例简单应用wcf 新建一个wcf服务应用程序 在IServi

WCF 简单示例

WCF(Windows Communication Foundation,WCF)是基于Windows平台下开发和部署服务的软件开发包(Software Development Kit,SDK).WCF为服务提供了运行时环境(Runtime Environment),使得开发者能够将CLR类型公开为服务,又能够以CLR类型的方式使用服务.理论上讲,创建服务并不一定需要WCF,但实际上,使用WCF却可以使得创建服务的任务事半功倍.WCF是微软对一系列产业标准定义的实现,包括服务交互.类型转换.封送

C# 编写WCF简单的服务端与客户端

http://www.wxzzz.com/1860.html Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台.整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术.是Windows平台上开发分布式应用最佳的实践方式. 今天带如何一步一步实现WCF服务端与客户端的开发及基础讲解. 一.在Visual

WCF简单使用(分别部署在控制台和IIS上)

WCF部署到控制台 1.下面通过一个简单的服务示例来认识WCF1.新建项目,名称IBLL,解决方案名称WcfDemo,模板选择类库2.修改Class1.cs文件名称为 IUserInfoService.cs3.添加引用 System.ServiceModel4.修改IUserInfoService.cs代码如下: using System; using System.Collections.Generic; using System.Linq; using System.ServiceModel

WCF简单示例

工程结构: 注意三个项目都需要引用System.ServiceModel以及System.Runtime.Serialization. CommonLib工程: 1 [ServiceContract]//, ServiceKnownType(typeof(User))] 2 public interface IMyObject 3 { 4 [OperationContract] 5 int Add(int x, int y); 6 [OperationContract]//, ServiceKn

WCF基础之设计和实现服务协定

本来前面还有一个章节“WCF概述”,这章都是些文字概述,就不“复制”了,直接从第二章开始. 当然学习WCF还是要些基础的.https://msdn.microsoft.com/zh-cn/hh148206这个就是“原文”了,喜欢WCF的可以自己去下载. WCF简单术语: 消息:消息是一个独立的数据单元,主要由消息头和消息正文组成,入门的时候我对它的理解简单说:发送一个消息,就是调用了一个方法,具体的以后再说. 服务:服务说简单点就是终结点的集合. 终节点:即包含我们所谓的WCF的ABC三要素的接

现有分布式技术(socket、.net remoting、asp.net webservice、WSE、ES)和wcf的比较及优势

1:socket VS remoting 使用socket无疑是效率最高的.但是,在复杂的接口环境下,socket的开发效率也是最低的.故在兼顾开发效率的情况下,可以使用remoting来代替socket开发.并且:    1.Tcp通道的Remoting速度非常快.    你可以通过端口查看工具,发现remoting比直接socket传输的内容,应该是属于同一个数量级的.我的另一个担心是,大客户端数量的情况下,remoting传输效率会不会很低,结果经过现场测试,同时对300个客户端进行数据通

作个有安全感的应用,告别裸奔

自个对架构比较感兴趣.闲暇时间学习学习相关姿势,也涨涨姿势. 算是自娱自乐也算是实践吧!把自己平时用的小功能做了个系统都算不上的小应用吧! 一开始通过账号密码验证,然后加上了,mac地址验证还是觉得不够安全,最近把数字证书的功能也加上了,感觉小有有点安全感,不再裸奔了.可以跟大家分享分享. 1.浅说架构 这样一个拓扑图,大家首先想到的是bs的网站吧!其实我们今天说的cs架构的小应用. 使用wcf支撑的soa架构: 为什么用wcf呢?首先wcf简单上手快,然后wcf我可以通过简单的配置实现用htt