WCF 小结

来源:互联网 发布:京东淘宝唯品会哪个好 编辑:程序博客网 时间:2024/05/16 19:16

     今天学习的效率太低了。也可能是还没有从节日中走出来~~~    明天要加大学习力度了。

     下周还要实现一个关于Silverlight的demo,WCF的学习可能要放一放了。

     哎,谁让公司花钱养着咱呢!

     闲话少叙,总结。

     WCF分为四步:1、创建契约(创建接口)   2、实现契约(实现接口)   3、对契约服务进行寄宿   4、客户端调用服务

   服务寄宿的目的就是开启一个进程,为WCF提供一个运行的环境。通过为服务添加一个或多个终结点,使之暴露给潜在服务消费者。服务消费最终通过相匹配的终结点对该服务进行调用。服务寄宿的方式大体分为两种:一种是自我寄宿:通过手工启动程序的方式对服务进行寄宿。比如在Console应用中;另一种则是通过操作系统现有的进程激活方式为WCF服务提供寄宿主,Windows下的进程激活手段包括IIS、Windows Service和WAS等。

   今天成功调试了自我寄宿方式,另一种方式IIS寄宿失败,原因不详(明日须解决问题)。

    学习了App.config的配置原来。

   <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <!--指定配置文件所配置的宿主程序承载的服务类型。在配置文件里设置的服务类型的名称会与编译在宿主程序集里的.Net类型名称匹配
      即为         “命名空间 + 类名”
      behaviorConfiguration:元数据行为类型-->
      <service name="IConsole.HelloWCF" behaviorConfiguration="CalculatorService">
        <!--使用URI(统一资源标识符)格式指定服务宿主的基地址
        此地址是为服务终结点设定地址,是基地址的相对地址。URI第一个冒号前的部分称为方案-->
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8000/"/>
            <add baseAddress="net.tcp://localhost:8081/"/>
          </baseAddresses>
        </host>
        <!--终结点的地址、绑定和契约由下面指定
        契约的部分(contract)是由已经被服务类型实现的服务契约接口名称指定,即
        终结点的绑定方式通过binding指定
        终结点的地址被设置为Calculator。这个地址是基地址的相对地址。
        此例终结点应为"http://localhost:8000/",所以终结点的绝对地址就是http://localhost:8000/Calculator-->
        <endpoint address="Calculator"
                   binding="wsHttpBinding"
                   contract="IConsole.IHelloWCF"/>        
      </service>
    </services>
    <behaviors>
      <!--表示就用在服务上的行为被修改,表示在服务在响应Http Get的访问时,生成自己的元数据-->
      <serviceBehaviors>
        <behavior name="metadataBehavior">
          <serviceMetadata httpGetEnabled="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

这方面还有很多东西需要学习,可能也有很多遗漏之处,在今后的学习过程再进行补充。

              端口共享

      为了避免网络攻击,防火墙会关闭大部分的端口进行屏蔽,仅仅保留少量端口。不能保证每个跨防火墙通信的应用都具有一个唯一的端口,他们只能共享一个或少量几个端口。对WCF来讲,当我们某个服务寄宿于一个进程中,实际上就是通过该进程监听和处理来自客户端的Socket请求。如果主机上部署了若干服务,而这些服务寄宿于不同的应用程序中,对于这种寄宿应用程序来说,监听的端口必须不同。关于如何具体实现今天没有学习。

      今天总结完成的时间有些早。随便说上两口。

     记得上学期间老师总是强调:不要过于关注用何种语言进行实现、也不要过于关注完成的技术。要学习和理解这种思想。当时听的晕晕乎乎,现在想想似乎可以理解一些了。做上个项目时,有太多的技术没有做过,甚至有些都没有听说过,但在项目的过程当中,这些都不是主要问题。一些耽误的时间就是对项目的理解和分析。当然,不能把所有问题都推到项目是再进行处理。在空闲时间还是要学习一些新技术的,手中有粮心中不慌嘛。总的来说就是把时间尽量合理的利用,发挥时间的最大功效。

       人都是有惰性的。在不知不觉中就产生了惰性,比如在平时没有在项目当中学习东西的速度快。人之常情。想要客服这种惰性是需要磨练的。


                                               Fighting!

     

     



原创粉丝点击