• WCF引用方式之IIS方式寄宿服务


    通过IIS方式寄宿服务

    之前的例子是将控制台作为WCF的寄宿方式或者是直接添加契约项目的引用,然后通过配置或者是ChannelFactory的形式进行创建服务对象,其实在大多的开发中以IIS的形式创建WCF也是比较常见的。
    每一个Webservice都是具有一个asmx文本文件,客户端通过访问.asmx文件即可实现Webservice的调用。当然WCF和Webservice类似,每一个WCF服务都有一个对应的.svc文本文件。基于IIS服务寄宿要求的WCF服务都具有相应的.svc文件,.svc文件部署于IIS站点中,对WCF服务的调用提现在对.svc文件的访问上。.svc文件仅仅包含一个%@ ServiceHost这样的指令,该指令具有一个必须的Service属性和一些可选的属性,如下代码所示就是一个简单的.svc文本的内容

    WCF引用方式之IIS方式寄宿服务

    其中指定了Service属性为一个完整名称的WCF服务类。

    寄宿在IIS下的WCF服务实际上就是一个WEB应用,所以通常会把.svc文件放在Web下,并且通过web.config文件进行配置WCF的终结点和用于发布元数据的ServiceMetadataBehavior服务行为。由于服务调用是通过访问服务对应的.svc文件来实现的,这个.svc文件所在的地址对于客户端来说就是服务(终结点)的地址,因此是不需要配置终结点的adder的,配置代码如下:

    WCF引用方式之IIS方式寄宿服务

     除了终结点没有指定address之外,服务行为ServiceMetadataBehavior用于元数据发布时也没有指定元素的发布地址。在这种情况下,.svc文件的地址加上?wsdl查询字符串就是元数据发布地址。对于当前例子来说,当服务被成功寄宿到本地的Web应用之后,就可以通过http://127.0.0.1:1111/网站名称/CalculatorService.svc?wdsl得到表示服务元数据的WSDL文件,这也就是为什么我们右键浏览.svc文件的时候返回的是很长的xml内容。

    再次修改客户端:

    WCF引用方式之IIS方式寄宿服务

    仅仅修改了address属性,当前假设我们的Web应用程序叫做MyWeb,这也我们的address就可以找到发布后的.svc文件了。

     至此,我们一共介绍了两大类的WCF的方法:
    一种是将WCF服务寄宿在控制台程序:

      1.通过添加服务引用(根据元数据的地址添加),然后创建了一个Client对象,然后就可以操作了;
      2.通过添加对契约项目的引用,然后通过ChannelFactory创建了一个Channel对象(通过契约类型,Binding,以及一个地址);
      3.通过添加对契约项目的引用,然后通过ChannelFactory创建了一个Channel对象(首先会在config中配置endpoint信息,然后通过endpoint的name作为   ChannelFactory的参数进行创建)。  

    一种是依靠IIS作为寄宿:

      1.添加对契约项目的引用,然后通过修改配置文件的endpoint的address为.svc的地址,这样同样还是通过ChannelFactory方式进行创建代理对象;
      2.添加契约项目的引用,然后通过ChannelFactory创建了一个Channel对象(通过契约类型,Binding,以及一个地址,这时候的地址应该是.svc)。

  • 相关阅读:
    iptables学习笔记_____摘自朱双印个人日志 ____http://www.zsythink.net/
    使用xmanager图形化远程连接rhel6
    powerdesigner
    CentOS和RedHat Linux的区别
    win7防火墙端口开放
    微服务 环境问题处理
    lombok
    pl/sql Devloper 如何查看表结构
    pl/sql Devloper使用
    luogu P4231 三步必杀
  • 原文地址:https://www.cnblogs.com/lvjy-net/p/8297657.html
Copyright © 2020-2023  润新知