WCF系列(二) 使用配置文件构建和使用WCF服务

当然,配置一个ServiceHost除了上面说的完全使用代码的方式,更好的方式是使用配置文件,把一些可能需要修改的属性跟代码分离,放到配置文件中,这样可以提供服务配置的灵活性,也更容易维护。

看看前面那个不用配置文件的WCF的例子改成使用配置文件会是怎样配置的。

1、服务端

1.1.准备Contract和实现Contract的服务

这部分是功能接口和功能实现部分,不需要配置,所以这部分跟前面一样。

[ServiceContract()]
public interface IService
{
   [OperationContract]
   string MyOperation1(string myValue);
}
public class Service : IService
{
   public string MyOperation1(string myValue)
   {
     return "Hello: " + myValue;
   }
}

1.2.建立ServiceHost

前面使用public ServiceHost(Type serviceType, params Uri[] baseAddresses)构造方法建立ServicesHost。

这里建立ServiceHost实例也必须使用代码,但是可以使用简单些的构造方法:

ServiceHost myServiceHost = new ServiceHost(typeof(Service))

只要给ServiceHost指定你要运行服务的类型,就是告诉要驻留在ServiceHost里的哪个WCF服务(实现某个或某些Contract的类)。BaseAddress部分这里不需要指定了,可以放在配置文件里。

编码部分就这些,剩下的部分都只要通过配置文件进行设置即可。

1.3.WCF配置

WCF的配置使用.NET Framework的System.Configuration配置系统。在Visual Studio中配置一个WCF服务时,如果宿主是一般的windows应用或console应用,则配置文件为App.confing,,如果宿主是IIS应用,则配置文件为Web.config。

跟WCF相关的配置主要有三个元素:

<system.serviceModel>

<system.serviceModel.activation>

<system.runtime.serialization>

这三个元素都是.NET Framework配置文件的根元素<configuration>下的元素,其中<system.serviceModel>元素最为基本,WCF的基本设置集中在这个元素中。

看一下<system.serviceModel>元素的简单结构:

<configuration>
  <system.serviceModel>
    <!-- services 元素包含应用中驻留的所有service的配置要求 -->
    <services>
    </services>
    <!-- 定义service和Endpiont行为-->
    <behaviors>
    </behaviors>
    <bindings>
    </bindings>
    <!-- 定义客户端的配置-->
    <client>
    </client>
  </system.serviceModel>
</configuration>

时间: 2024-09-22 02:29:06

WCF系列(二) 使用配置文件构建和使用WCF服务的相关文章

WCF系列(一) 完全不使用配置文件构建和使用WCF服务

只使用代码而不用配置文件的情况不适合IIS为宿主的情况,IIS宿主必须使用配置文件配置WCF的ServiceHost. 1.服务端 1.1.准备Contract和实现Contract的服务 很简单的一个Contract(Interface)和实现这个Contract(实现这个接口的类)的服务. 这是VS2005中使用add new item,选WCF Service后自动生成的一个模板例子服务代码. [ServiceContract()] public interface IService {

SI 系列入门 之 手把手构建 Spring MVC 工程

SI 系列入门 之 手把手构建 Spring MVC 工程 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. SI 前文有述,Spring MVC + MyBatis 的简称,因为 Spring

WCF运行时框架的构建与扩展[共10篇]

WCF服务端运行时框架的构建 WCF服务端运行时架构体系详解[上篇] WCF服务端运行时架构体系详解[中篇] WCF服务端运行时架构体系详解[下篇] WCF服务端运行时架构体系详解[续篇] WCF客户端运行框架的构建 WCF客户端运行时架构体系详解[上篇] WCF客户端运行时架构体系详解[下篇] WCF扩展 通过"四大行为"对WCF的扩展[原理篇] 通过"四大行为"对WCF的扩展[实例篇] 通过自定义ServiceHost实现对WCF的扩展[原理篇] 通过自定义Se

系列二VS项目软件配置工具介绍

原文:系列二VS项目软件配置工具介绍 Svn和VisualSvn介绍      在使用TortoiseSvn(SVN客户端)+ AnkhSvn(VS2008插件) +VisualSvn Server(版本控制服务器)进行源代码版本控制前,有必要先了解下Subversion(Svn).     Svn(Subversion)是近年来崛起的版本管理工具,是CVS的接班人.目前,绝大多数开源软件都使用Svn作为代码版本管理软件.      Svn客户端: Subversion的客户端有两类,一类是we

xen虚拟化实战系列(二)之xen虚拟机安装

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1284591 xen虚拟化实战系列文章列表 xen虚拟化实战系列(一)之xen虚拟化环境安装xen虚拟化实战系列(二)之xen虚拟机安装xen虚拟化实战系列(三)之xen虚拟机复制xen虚拟化实战系列(四)之xen虚拟机扩展磁盘空间一法xen虚拟化实战系列(五)之xen虚拟机扩展磁盘空间再一法xen虚拟化实战系列(六)之x

SQL Server 2008空间数据应用系列二:空间索引(Spatial Index)基础

原文:SQL Server 2008空间数据应用系列二:空间索引(Spatial Index)基础 在前一篇博文中我们学习到了一些关于地理信息的基础知识,也学习了空间参照系统,既地球椭球体.基准.本初子午线.计量单位.投影等相关理论知识,我们可以使用这些空间参照系统组件来定义一系列应用于地球空间上的几何图像来表示地理空间中的特定功能,表示着地球上一个一个特定的位置点. 本篇主要介绍地理空间索引的概念以及微软SQL Server 2008 R2中的空间索引的应用.   一.空间索引 空间索引是指依

ExtJS调用WCF系列

第三节:ExtJS调用WCF系列-----添加,修改,删除(2) 第三节:ExtJS调用WCF系列-----添加,修改,删除(1) 第二节:ExtJS调用WCF系列-----分页排序列表实现 第一节:ExtJS调用WCF系列-----实现JSON传递

第二节:ExtJS调用WCF系列-----分页排序列表实现

打开第一节中的那个项目,新建一个Paging.aspx的页面来实现分页列表. 这次我们使用一个测试的数据库CompanyInfoDB,里面有两张表,部门和员工,并外键关联,数据库调用采用Linq的Sqlmetal 命令方式,在Visual Studio 2008的命令提示符中输入以下命令:D:\Program Files\Microsoft Visual Studio 9.0\VC>sqlmetal /conn:server=172.16.1.52;database=CompanyInfoDB;

Learn WCF (4)--学会使用配置文件

无论是Web应用程序还是Win应用程序,我们都会经常用到配置文件.WCF作为分布式开发的基础框架,在定义服务以及定义消费服务的客户端时,都使用了配置文件的方法.配置文件的重要性和实用性是大家所熟知的,它可以给我们WCF开发的灵活性上带来很大的提高.下面说说我学习使用配置文件的所得. WCF的配置使用.NET Framework的System.Configuration配置系统.在Visual Studio中配置一个WCF服务时,如果是自托管宿主或Windows Services宿主,则配置文件为