摘要: 公共因特网是一个世界范围的计算机网络,它是一个互联了遍及全球的数以百万计的计算设备(如桌面PC,服务器,工作站等)的网络。所有这些设备被称为host或者端系统(end system)。端系统通过通信链路(communication link)和分组交换机(packet switch)连接到一起。当一台端系统向另一台端系统发送数据时,发送端系统将数据分段,并为每段加上首部字节,由此形成的信息包称为分组。分组交换机从它的一条入通信链路接收到达的分组,并从它的一条出通信链路转发该分组。当今的因特网中,最著名的两种交换机是路由器和链路层交换机。这两种设备都是朝着最终目的地转发分组。端系统、分组交换机和 阅读全文
posted @ 2011-05-09 07:59 秋无语 阅读(559) 评论(0) 推荐(0) 编辑
摘要: 在WCF中一些基于HTTP之上的绑定可以用TcpTrace跟踪消息。借助此工具可以使我们有机会了解一些功能的工作方式,如可靠性会话在网络断开的情况下是如何向服务端发送消息。TcpTrace的界面非常简洁,简洁的有点让人不知所措。Listen on Port:TcpTrace要监听的本机端口Destination Server:对TcpTrace监听的端口的任何访问都将转发到目标服务器Destination Port:对TcpTrace监听的端口的任何访问都将转发到目标服务器的这个端口如在浏览地址栏输入:http://127.0.0.1:8080或者http://localhost:8080,将 阅读全文
posted @ 2011-05-03 08:52 秋无语 阅读(2524) 评论(4) 推荐(4) 编辑
摘要: 消息队列不同于传统的请求响应模式,它是客户端把消息发送给请求消息队列,服务可以稍后对消息进行处理并把处理结果发送给响应队列,而后客户端从响应队列读取服务处理后的消息。而且使用消息队列可以使客户端实现脱机工作。脱机应用程序必须有本地缓存数据,要采用异步通讯而且要把消息持久化,在与服务器联机后将消息发送出去。WCF是使用NetMsmqBinding来支持消息队列的,传输消息不是通过TCP或HTTP等,而是通过微软消息队列(MSMQ),这是Windows组件,可以通过1)控制面板2)程序和功能:打开或关闭Windows功能3)出现如下界面,点确定即可安装。安装成功后可以右击我的电脑选择管理而后会有如 阅读全文
posted @ 2011-05-03 08:32 秋无语 阅读(2238) 评论(0) 推荐(0) 编辑
摘要: 通常服务器上的一些资源(如文件系统、网络套接字等)需要调用者提供安全口令来决定是否有权访问。而运行服务的宿主进程通常也被限制在一定的权限范围内。为了访问那些特殊资源,通常采用模拟(Impersonation)来让服务宿主进程提升权限以达到可以访问资源的要求。这种情况是提升了服务权限,如果调用者只需很小权限,模拟调用者身份就可以让服务降低权限运行。模拟就是让运行服务的宿主进程使用调用者的身份来替换当前宿主进程使用的身份。所以服务就只能访问调用者被允许访问的资源,以调用者权限运行,这样可以很容易地确保用户只访问了恰当的数据和资源。在WCF中可以通过TokenImpersonationLevel来设 阅读全文
posted @ 2011-04-25 08:17 秋无语 阅读(1196) 评论(0) 推荐(0) 编辑
摘要: 并发是对同时执行的任务数量的度量,单位为任务(如请求、作业、事务等)。执行时间是对完成任务所用时间的度量,单位为时间(如毫秒、秒等)。吞吐量是在固定的时间内完成的任务数量的度量,单位为任务/时间(如请求/秒、事务/秒等)。可以通过减少执行时间或提高并发来提高吞吐量。在WCF中可以通过InstanceContextMode和ConcurrencyMode来控制并发行为。InstanceContextMode用于控制服务类实例化,可以有以下几种取值:Single:一个服务类实例处理所有客户端的所有请求。PerCall:为每一个客户端的每一个请求创建一个服务类实例。PerSession:为每一个客户 阅读全文
posted @ 2011-04-22 07:57 秋无语 阅读(2736) 评论(3) 推荐(0) 编辑
摘要: 通道负责发送和传递消息。在WCF中有协议通道和传输通道。协议通道主要对消息进行转换、修改,来实现各种协议(安全、可靠消息、事务等)。传输通道主要通过某种传输机制(http、tcp、msmq等)来传送消息。不同功能的通道在一起组成了通道栈。通道栈至少会拥有一个传输信道和一个编码器,如,httpTransport传输通道默认使用TextMessageEncoding,这样就实现了一个通道栈。用通道编程很有socket编程的味道。了解下通道对理解WCF以及扩展WCF都是很有帮助的。WCF中有三种消息交换模式。数据报(IInputChannel和IOutputChannel)(单向):消息只从客户端发 阅读全文
posted @ 2011-04-19 08:38 秋无语 阅读(1412) 评论(1) 推荐(1) 编辑
摘要: 绑定提供了必要的元素来为客户端和服务端构建通讯信道。绑定描述了传输协议、消息编码格式以及其它用于通信信道的通信协议。通过绑定,WCF封装了各种不同通信场景下所使用的配置。每一个绑定配置都必须提供一个传输协议、一个消息编码格式和一个相关消息版本信息。传输协议:可以是http、https、tcp、命名管道或msmq等。消息编码:描述消息如何格式化。可以是binary、text、mtom。消息版本:可以是soap1.1、soap1.2。消息版本还可以设置是否支持ws-addressing协议。在与非.net平台进行互操作时,应该注意消息版本的选择。每个绑定都有若干个绑定元素组成,可以用以下代码查看默 阅读全文
posted @ 2011-04-18 08:10 秋无语 阅读(1697) 评论(0) 推荐(0) 编辑
摘要: 在WCF中客户端与服务端都是靠消息进行传输的,消息格式和SOAP一样,具有消息标头和正文。客户端和服务端之间的所有通讯最终都会产生System.ServiceModel.Channels. Message实例。在平时操作中,很少直接操作Message类型,而是通过WCF服务模型构造(如数据契约、消息契约和操作契约)来描述传入消息和传出消息。所以,要想透彻的理解WCF有必要对Message多些了解。下面看一个简单的类,来了解一下Message用到的类。using System;using System.ServiceModel;using System.Runtime.Serialization 阅读全文
posted @ 2011-04-14 08:32 秋无语 阅读(826) 评论(0) 推荐(0) 编辑
摘要: 在SQL Server中,优化器根据表或者索引结构以及表中数据动态的确定两个表之间成本低的连接策略。SQL Server有Nested Loop Join、Merge Join、Hash Join三种连接策略。Nested Loop Join:数据量较小的表被优化器选择做为outer table,数据量较大的做为inner table ,而且要求做为inner table的表必须有适当的可用索引。Merge Join:连接的两个表在连接列上都进行了排序,而且都有可用索引。Hash Join:连接的两个表在连接列上都没有索引,或者是被优化器选做inner table表上没有可用索引或者一个表远远 阅读全文
posted @ 2011-04-12 07:49 秋无语 阅读(516) 评论(3) 推荐(0) 编辑
摘要: WCF客户端与服务端是通过消息进行互通的。在客户端WCF把传入参数序列化后,把它们绑定到客户端的输出消息中传递给服务端,服务端接收消息后反序列化并转换为CLR类型,进行一些逻辑处理后把输出参数以及返回值序列化并绑定到返回消息中,客户端接收到返回值消息后,反序列化并转换成相应的本地类型,完成一次通讯。序列化在WCF中,套用刘大脑袋的一句话就是“必须的”。WCF中可以选择的序列化机制有DataContractSerializer、NetDataContractSerializer、XmlSerializer和DataContractJsonSerializer。下面就写一段简单的代码来看看这几种序 阅读全文
posted @ 2011-04-11 08:07 秋无语 阅读(1763) 评论(0) 推荐(1) 编辑