学习WCF之路2:配置WCF

当服务部署之后迁移了服务器,基地址发生变化,我们必须修改源程序并重新编译重新部署才能实现这个要求。对于其他的配置选项亦是如此。这对于产品环境是不能接受的。好在WCF提供针对这个问题的解决方案:配置文件。

我们把对服务的配置写在应用程序的配置文件中(IIS程序是web.config 其他程序是app.config),当配置发生改变的时候我们就不用重新编译程序集了。

还是以之前的例子为例,首先贴上完整的配置文件(app.config)代码:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service name="HelloWCF.HelloWCF" behaviorConfiguration="metaExchange">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8000/MyService"/>
          </baseAddresses>
        </host>
      <endpoint address="HelloWCF" binding="wsHttpBinding" contract="HelloWCF.IHelloWCF"/>
      <endpoint address="mex" binding="wsHttpBinding" contract="IMetadataExchange"/>
      </service>
    </services>
  <behaviors>
    <serviceBehaviors>
      <behavior name="metaExchange">
        <serviceMetadata httpGetEnabled="true"/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
  </system.serviceModel>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
</configuration>

本人使用的是Win10,VS2015环境,首先在原服务端添加一个配置文件, 右键点击项目->添加->新建项->应用程序配置文件,名字系统会起好(app.config),并把上面的配置写进去,保存。

主要内容讲解:

(1)首先是添加<service>标签的name属性,指定的时候后要用完全限定名(带着命名空间)。

(2)然后添加基地址baseAddresse。

(3)然后配置终结点endpoint,包含三个元素:地址(address)、绑定(binding)和服务协定接口(contract)。

这里的地址是相对地址,也可以指定为空字符串"",此时基地址(即服务地址)就是终结点的地址,还可以指定一个绝对地址,那样他会覆盖基地址,基地址对这个终结点来说就不起作用了。(注意,在使用IIS承载的时候,必须使用相对地址,也就是终结点必须是基地址的子地址,这是由IIS的部署结构决定的。

(4)允许元数据交换,通过为服务添加一个行为来实现的,行为是用来描述服务的特性的,这里是服务行为,所以用<serviceBehaviors>,交换元数据的行为有固定的标签描述,就是<serviceMetadata>。

(5)服务提供元数据交换方式,让我们刚才建立的服务去引用他,用<service>的behaviorConfiguration属性。

(6)配置元数据交换终结点endpoint,同样包含三个元素,属性固定。


当然,配置文件完成后,原服务器端代码无需再配置,删除即可。main函数中只需留下操作部分,即:

            ServiceHost host = new ServiceHost(typeof(HelloWCF));
            host.Open();
            Console.WriteLine("Service is Ready");
            Console.WriteLine("Press Any Key to Terminate...");
            Console.ReadLine();
            host.Close();


保存运行后,应该与之前结果一致。


总结:这只是最简单的配置文件的编写,接触到了服务、终结点和行为的配置方法。配置文件的元素还有许多,像绑定、安全性等特性,以后慢慢学起。







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值