• WCF基础 (续 更多关于配置文件的内容)


    服务控制文件web.config 或是 app.config 依赖于服务是如何被寄宿的,它们必须包含一个<system.serviceModel>节点。在这个节点下,服务,绑定,行为,客户端,诊断,扩展,寄宿环境和COM+互操作都可以被特殊设置。最低限度必须有一个<services>节点用来包含终结点,也至少有一个非基础架构的<endpoint>节点在<services>节点下面。在<endpoint>节点内,ABCs会被定义在每一个终结点上。

       地址属性定义客户端将要把消息发送到终结点的URI。例如,如果一个服务使用基于HTTP协议的绑定basicHttpBinding,URI将类似于http://www.myserver.com:8080/MyService/ .如果一个地址是相对地址(非空而且不仅仅是一个路径),这个地址将重载宿主的基地址当创建服务时。当服务被宿主启动时,WCF启动监听,在这个地址上监听新到请求。在IIS 寄宿的情况下,监听很可能早就启动了,所以WCF注册到这个监听器上以便于当那个URI的请求到来时可以重定向到WCF服务。

       绑定属性定义了需要连接到服务的通信细节。定义了整个信道栈,最少要包括网络适配器信道。也包括加密,压缩和其他信道。很多WCF系统自带的绑定,如BasicHttpBinding,与ASMX兼容; WSHttpBinding,实现了很多更高级的要求消息级别的安全,事务处理和其他高级特性的网络服务; NetTcpBinding,实现了与.NET Remoting和DCOM类似的快速安全通信格式。

       契约属性引用由服务终结点定义的类型。如果一个MEX终结点存在服务中,WCF会检查这个类型而且在MEX终结点以元数据形式暴露出来。WCF首先从\bin 文件夹寻找类型信息,然后在本机的全局程序缓冲中寻找。如果找不到类型信息,当Add Service Reference 或者svcutil.exe 请求WSDL时服务将会向它们返回错误信息。如果MEX终结点不存在,服务将会运行很好,但是客户端不会检测到自己的ABCs.

      

    更多服务寄宿的内容

    WCF可以使你在任何操作系统进程中寄宿服务。在大多数情况下,IIS是实现性能,可管理性和安全的最合适的寄宿环境。如果你已经在你的环境中运行IIS,事实上你就已经有本地安全处理了。复杂的id通常定义明确的策略和安全程序,并已通过自动化工具的检查。小的组织经常使用建立在IIS和Windows Server 2003的隐藏安全。在其他情况下,现有的安全行为将会应用到以IIS为寄宿的WCF服务上。

       但是也有一些理由去不适用IIS寄宿。你可能想使用HTTP协议。你可能想要启动和关闭事件时有明确的控制。或者你想提供一个自定义管理接口而不是使用IIS工具。如果你不想使用IIS寄宿,没问题。WCF使自我寄宿非常易于使用和扩展。自我寄宿就是开发人员实例化服务寄宿来描述一个寄宿方法的过程,而不是依赖于IIS或者Windows激活管理服务(Windows Process Activation, WAS).

       最简单的寄宿服务的方式就是写一个控制台应用程序,就想列表1.1显示的那样。这种方法在生产过程中不是非常有用,因为在服务器上使用控制台窗口不是好的行为,但是作为开始来说,它去除了所有对IIS基础的依赖。主程序创建一个ServiceHost的实例,就像名字显示的,将会寄宿服务。程序调用ServiceHost 的Open方法并且继续进行。在这个例子里,除了等谁按下回车键不用再做什么,直到应用程序调用ServiceHost 的Close 方法。

       在Open方法被调用以后,ServiceHost 在终结点指定的地址上监听请求。当消息到达时,ServiceHost做一系列事情。首先,根据绑定定义的信道栈,应用解密,解压缩和安全规则。然后,基于契约,反序列化收到的消息为.NET类型,创建一个对象,最后反射调用对象上合适的方法。

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Make_it_easy/archive/2010/09/17/5890583.aspx

  • 相关阅读:
    截屏 多难未遂
    捕捉异常
    Android中缓存记忆
    Android中的线程池
    悄悄为Android中解决部分适配问题哦!
    java中的服务端跳转与客户端跳转区别与联系
    doget(),doput()方法的使用
    基本概念--同步,异步
    java--SimpleDataFormat类
    java--9
  • 原文地址:https://www.cnblogs.com/mane/p/2059574.html
Copyright © 2020-2023  润新知