WCF开发实战系列二:使用IIS发布WCF服务 转
转 http://www.cnblogs.com/poissonnotes/archive/2010/08/28/1811141.html
上一篇中,我们创建了一个简单的WCF服务,在测试的时候,我们使用VS2008自带的WCFSVCHost(WCF服务主机)发布WCF服务,以便进行测试。这种VS2008内置的WCFSVCHost只适用于开发人员测试的使用,能进行WCF服务部署。这一篇文章中我们来看一下如何在IIS中部发布我们上一篇中做好的WCF服务。
第一步:打开我们上一篇文章中建立的WCF服务项目。
图《1》
第二步:新建WCF服务站点。在解决方案上右击,选择“添加”->“新建网站”,打开新建网站对话框。在“添加新网站”对话框中,我们选择“WCF服务”,并把网站的名子命名为“BookServiceHost”
图《2》
建立起来的新的WCF服务站点的结果如下,其中在App_Code文件中自动为我们生成两个类文件:IService.cs和Service.cs。这两个文件对我们来说没有用,我们删掉。
图《3》
第三步:在刚刚创建的WCF服务站点上添加对WCF服务库项目--Services项目的引用。
图《4》
第四步:配置Service.svc文件。
双击Service.svc文件,我们可以看到它的声明指示如下:
<%@ ServiceHost Language="C#" Debug="true" Service="Service" CodeBehind="~/App_Code/Service.cs" %>
由于在第二步中我们已经把IService.cs和Service.cs两个文件已经删除了,所以这里的声明指示内容修改一下,让这个Service.svc文件的后台代码指向我们上次创建的WCF服务库项目--Services项目中的类,改后的代码如下:
<%@ ServiceHost Language="C#" Debug="true" Service="Services.BookService"%>
我们把其中的Service属性指定为Services命名空间下的BookService类,并把CodeBehind属性删去了。
第五步:配置此WCF服务站点与WCF服务库项目之间的类的对应。
虽然在第三步中我们添加了对Services项目的引用,并且在第四步中修改了Service.svc的类的对应,但此时我们的WCF服务站点并不能把WCF服务库中的服务和终结点发布出来,还需要我们对web.config进行一系列的配置工作。
在web.config上右击选择“编辑WCF配置”
《图5》
在弹出的服务配置窗口中,把Service服务指定到WCF服务库的Services.dll中的Services.BookService服务类上。
《图6》
再把其中的一个对外终结点的Contract设为WCF服务库的Services.dll中的Services.IBookService服务契约上。
《图7》
第六步:试着再添加一个通信的终结点。
这一步是可选的,我们再为此WCF服务站点添加一个终结点,A=basic B=basicHttpBinding C=Services.IBookService
《图8》
下面我们将试着使用不同的终结点与WCF服务进行交互,查看运行情况。
当我们使用IIS5或IIS6发布WCF服务的时候一般只创建Http绑定的终结点,而不能创建使用TCP绑定、管道绑定的终结点。
第七步:测试运行WCF服务站点。
在Service.svc上右击,选择“在浏览器中查看”,在IE中运行此服务。
《图9》
由此我们看到我们可以在ASP.NET Development Server中发布我们的WCF服务了。
第八步:在IIS布署此WCF服务站点。
在IIS建立Web应用程,指向我们的WCF服务站点所在的目录。然后在IIS运行我们发布的WCF服务
《图10》
从上图中我们看到发布的站点中不再包含有端口号。
到此为至我们在IIS中发布WCF服务成功。
下面我们在WCF测试客户端调用我们刚刚在IIS中发布的WCF服务
第九点:在VS2008命令窗口中输入以下代码运行WCF测试客户端
x:\...\wcftestclient http://localhost/TestWCFService/Service.svc
弹出测试窗口如下:
《图11》
我们可以看到发布的服务中有两个终结点:这两个终结点的传输方式不同,但提供的方法是相同的。
我们通过第一个终结点的AddBooks()方法添加三个对象。
《图12》
再通过第二个终结点的GetAllBooks()方法取得所有对象的信息。
《图13》
运行完全没问题。
WCF开发实战系列二:使用IIS发布WCF服务 转的更多相关文章
- WCF开发实战系列二:使用IIS发布WCF服务
WCF开发实战系列二:使用IIS发布WCF服务 (原创:灰灰虫的家http://hi.baidu.com/grayworm) 上一篇中,我们创建了一个简单的WCF服务,在测试的时候,我们使用VS200 ...
- WCF开发实战系列三:自运行WCF服务
WCF开发实战系列三:自运行WCF服务 (原创:灰灰虫的家 http://hi.baidu.com/grayworm)上一篇文章中我们建立了一个WCF服务站点,为WCF服务库运行提供WEB支持,我们把 ...
- WCF开发实战系列四:使用Windows服务发布WCF服务
WCF开发实战系列四:使用Windows服务发布WCF服务 (原创:灰灰虫的家http://hi.baidu.com/grayworm) 上一篇文章中我们通过编写的控制台程序或WinForm程序来为本 ...
- WCF开发实战系列五:创建WCF客户端程序
WCF开发实战系列五:创建WCF客户端程序 (原创:灰灰虫的家http://hi.baidu.com/grayworm) 在前面的三篇文章中我们分别介绍了WCF服务的三种载体:IIS.Self-Hos ...
- WCF开发实战系列一:创建第一个WCF服务
WCF开发实战系列一:创建第一个WCF服务 (原创:灰灰虫的家http://hi.baidu.com/grayworm) 在这个实战中我们将使用DataContract,ServiceContract ...
- WCF开发实战系列一:创建第一个WCF服务 转
转 http://www.cnblogs.com/poissonnotes/archive/2010/08/28/1811064.html 在这个实战中我们将使用DataContract,Servic ...
- [原创].NET 分布式架构开发实战之二 草稿设计
原文:[原创].NET 分布式架构开发实战之二 草稿设计 .NET 分布式架构开发实战之二 草稿设计 前言:本篇之所以称为草稿设计,是因为设计的都是在纸上完成的.反映了一个思考的过程. 本篇的议题如下 ...
- [CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口(转)
转自:[CXF REST标准实战系列] 二.Spring4.0 整合 CXF3.0,实现测试接口 文章Points: 1.介绍RESTful架构风格 2.Spring配置CXF 3.三层初设计,实现W ...
- WCF技术剖析之二十: 服务在WCF体系中是如何被描述的?
原文:WCF技术剖析之二十: 服务在WCF体系中是如何被描述的? 任何一个程序都需要运行于一个确定的进程中,进程是一个容器,其中包含程序实例运行所需的资源.同理,一个WCF服务的监听与执行同样需要通过 ...
随机推荐
- [AtCode 4104] Small and Large Integers
题目链接:https://abc093.contest.atcoder.jp/tasks/abc093_b?lang=en 这个题虽然很水,但是还是很容易踩坑,比如我,直接想到了[b,a]之间的长度和 ...
- Latex: 添加IEEE会议论文作者信息
参考: Multiple Authors with common affiliations in IEEEtran conference template Latex: 添加IEEE会议论文作者信息 ...
- HDU 5985 Lucky Coins(概率)
http://acm.split.hdu.edu.cn/showproblem.php?pid=5985 题意:有多种类型的硬币,每种类型的硬币都有一定的数量,现在每次抛硬币,除去朝下的硬币,知道最后 ...
- PHP 冒泡排序(Bubble Sort)
冒泡排序指的是依次比较相邻的两个数,然后根据大小做出排序,直至最后两位数.因为在排序的 过程中总是小数放前面,大数放后面,和气泡上升有点类似,所以又称作冒泡排序. 下面通过一个实例看一下如何实现冒泡排 ...
- JS基础---到底什么是闭包?它是如何形成的?
1.闭包 先看一个简单的例子 function a() { var i = 0; function b() { alert(++i); } return b; }var c = a(); c(); 这 ...
- Easy Graphics Engine vs2015使用
vs2017: 下载 https://pan.baidu.com/s/1qWxAgeK 里面的 “ege19.01_vs2017 (推荐, 修正win10 1809 上无法正常运行的问题).zip” ...
- 二: vue的属性及功能,axios
一: 过滤器 1. 定义: 过滤器,就是vue允许开发者自定义的文本格式化函数,可以使用在两个地方:输出内容和操作数据中. 定义过滤器的方式有两种. 2.使用vue.filter()进行全局定义 ...
- 怎样更新CentOS6.5的yum源
将yum源设置为国内yum源,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到. 国内源:可以使用wget获取或者直接下载 网易: CentOS5: http://mirrors.16 ...
- 1.0 poi单元格合合并及写入
最近项目中用到poi生成Excel时,用到了单元格合并,于是参考了http://www.anyrt.com/blog/list/poiexcel.html写的文章,但是其中有些地方不是很清楚,于是自己 ...
- jsp技术和el表达式和jstl技术
注:本文参考黑马视频的讲义 jsp技术 1.jsp脚本 )<%java代码%> ----- 内部的java代码翻译到service方法的内部 )<%=java变量或表达式> - ...