今天学习的效率太低了。也可能是还没有从节日中走出来~~~ 明天要加大学习力度了。
下周还要实现一个关于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!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。