WCF是.NET提供的一种服务,可以将自己写的程序(完成特定功能,比如从数据库中读取数据操作等)分装成服务以后,发布到服务器上。然后会生成一个网址,客户端在编程的时候,可以引用这个服务,使用这个服务中提供的功能。通过WCF可以实现对远程方法调用。

举个实际的例子,我想从数据库中读取相关文章数量大于3的基因,数据库表GeneSymbol,包含两个字段(genename,count),现在我想每次给数据库一个参数n(代表文章数量count),返回符合条件的基因数量。有人会说,直接在本地调用不就好了吗,但本地调用存在另一个问题,就是无法灵活的控制动作的行为。使用WCF,一旦想对返回基因数量的规则作出改变的话,无需改动客户端代码(客户端甚至无需做任何改变),只需改动WCF服务即可。

实现步骤:
1、新建一个WCF服务程序

2、在1中写需要执行函数的声明,在2中写上对应的函数实现(我的例子中试对数据库的操作以及返回值)

3、发布时,工程右键,发布。可以看到下图的界面,点击新建文件(图中红色部分)

5、局域网发布的话,一般点File System即可。如果要发布到阿里云服务器这样可以对外的,可以用FTP

6、选择要生成发布文件的位置即可

7、以下是发布后得到的文件

8、在本地发布生成发布文件后,如果我想让它在局域网(在阿里云上是类似的)的服务器上发布,将本地发布生成的文件拷贝到服务器上某个位置(比如E:\TEST),然后打开服务器上IIS管理器,如下图所示。这是我远程桌面操作的截图,打开后,点击左侧“网站”->“新建”->"网站" 会出现如下界面。这里注意,网站的IP地址就是服务器的地址。(因为是发布到该服务器上),自己为它指定一个端口。如下:然后点击下一步

9、这里的路径,就是刚才在本地发布后,拷贝过来的文件所在的路径,和上面的统一,是E:\TEST,找到它,添加进来即可

10、发布成功后,会生成一个网址,这是我这次发布所生成的网址
http://172.16.200.22:8012/Service1.svc?wsdl
这样就成功生成一个服务,以后每次使用,我只需要调用这个服务就可以了~

使用服务的说明
在本地的工程中添加引用时,选择添加一个服务,把上面生成的这个网址添加进去,在本地工程中直接使用就可以了,别忘了添加服务的名字

然后就可以按照如下的代码格式调用

class Test
{
static void Main()
{
Service1Client client = new Service1Client();
// 使用 "client" 变量在服务上调用操作。
// 始终关闭客户端。
client.Close();
}
}

【WCF】解析WCF服务的搭建的更多相关文章

  1. 真实世界:使用WCF扩展记录服务调用时间

    WCF 可扩展性 WCF 提供了许多扩展点供开发人员自定义运行时行为. WCF 在 Channel Layer 之上还提供了一个高级运行时,主要是针对应用程序开发人员.在 WCF 文档中,它常被称为服 ...

  2. 使用WCF扩展记录服务调用时间

    随笔- 64  文章- 0  评论- 549  真实世界:使用WCF扩展记录服务调用时间   WCF 可扩展性 WCF 提供了许多扩展点供开发人员自定义运行时行为. WCF 在 Channel Lay ...

  3. WCF系列教程之WCF客户端调用服务

    1.创建WCF客户端应用程序需要执行下列步骤 (1).获取服务终结点的服务协定.绑定以及地址信息 (2).使用该信息创建WCF客户端 (3).调用操作 (4).关闭WCF客户端对象 二.操作实例 1. ...

  4. WCF扩展记录服务调用时间

    WCF 提供了许多扩展点供开发人员自定义运行时行为. WCF 在 Channel Layer 之上还提供了一个高级运行时,主要是针对应用程序开发人员.在 WCF 文档中,它常被称为服务模型层(Serv ...

  5. WCF初探-10:WCF客户端调用服务

    创建WCF 服务客户端应用程序需要执行下列步骤: 获取服务终结点的服务协定.绑定以及地址信息 使用该信息创建 WCF 客户端 调用操作 关闭该 WCF 客户端对象 WCF客户端调用服务存在以下特点: ...

  6. 跟我一起学WCF(11)——WCF中队列服务详解

    一.引言 在前面的WCF服务中,它都要求服务与客户端两端都必须启动并且运行,从而实现彼此间的交互.然而,还有相当多的情况希望一个面向服务的应用中拥有离线交互的能力.WCF通过服务队列的方法来支持客户端 ...

  7. WCF入门(三)---WCF与Web服务/Web Service

    下面列出了WCF和Web服务之间存在一些重大差异. 属性:WCF服务是通过定义ServiceContract和OperationContract属性,而在Web服务,WebService和WebMet ...

  8. XML配置silverlight ,wcf 解析xml

    XML 代码: <?xml version="1.0" encoding="utf-8" ?><ChartSet  xmlns:xsi=&qu ...

  9. 使用Fiddler解析WCF RIA Service传输的数据

    原文 http://www.cnblogs.com/wintersun/archive/2011/01/05/1926386.html 使用Fiddler 2 解析WCF RIA Service传输的 ...

  10. WCF中队列服务详解

    WCF中队列服务详解 一.引言 在前面的WCF服务中,它都要求服务与客户端两端都必须启动并且运行,从而实现彼此间的交互.然而,还有相当多的情况希望一个面向服务的应用中拥有离线交互的能力.WCF通过服务 ...

随机推荐

  1. Manjaro安装配置笔记

    简单介绍: Manjaro和Ubuntu的都使用有段时间了,还是AUR大法用着舒服趁着由KDE桌面更换deepin时系统崩溃,直接重装了系统,版本:Manjaro-deepin-17.1.7-x86_ ...

  2. php mysql 编码问题

    php mysql 编码问题 问题: PHP从数据库中读取数据,并echo出来,数据中文显示正常:但是echo出新定义的中文字符串,新定义的字符串会乱码. 由此可能是数据库中提取出来的中文编码和php ...

  3. ELK日志分析方案

    针对公司项目微服务化,随着项目及服务器的不断增多,决定采用ELK(Elasticsearch+Logstash+Kibana)日志分析平台进行微服务日志分析. 1.ELK整体方案 1.1 ELK架构图 ...

  4. vue实例属性之methods和computed

    我们可以把同一函数放在methods或者computed中,区别在于computed有缓存,计算属性只有在它的相关依赖发生改变时才会重新求值,即数据改变才会执行函数.而methods每当触发重新渲染时 ...

  5. DRF分页组件

    为什么要使用分页 其实这个不说大家都知道,大家写项目的时候也是一定会用的, 我们数据库有几千万条数据,这些数据需要展示,我们不可能直接从数据库把数据全部读取出来, 这样会给内存造成特别大的压力,有可能 ...

  6. MySql基础笔记(一)Mysql快速入门

    Mysql快速入门 一)基本概念 1)表 行被称为记录,是组织数据的单位.列被称为字段,每一列表示记录的一个属性. 2)主键 主键用于唯一的标识表中的每一条记录.可以定义表中的一列或者多列为主键, 但 ...

  7. 2153 ACM 仙人球的残影 输出格式

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2153 中文题目,很简单,但是要注意输出格式,题目中三个字符长度 输出格式:%3d (整数) 思路:将输出看 ...

  8. SW加载标准库时出现failed to create Toolboxlibrary object怎么办?

    友情提示:Windows+r打开  输入smd 注意操作前要关闭solidworks, 重新打开软件. 下面就可以找到很多标准件了.

  9. BZOJ3490 : Pa2011 Laser Pool

    与横线以及竖线的交点个数很容易求,那么只要求出横线竖线交点与运动轨迹的交点数即可. 运动轨迹可以划分成若干条贯穿边界的斜线,对于第一条和最后一条,可以用bitset暴力统计. 对于中间的部分,斜线都是 ...

  10. 去重+排序板子(set+map)

    题意: 给定n个数,去重排序后输出个数和每个数 1.map实现 #pragma GCC optimize("O2") #include<iostream> #inclu ...