大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> NET专区 -> ASP.NET高级应用(3)

ASP.NET高级应用(3)

时间: 2021-07-31 作者:daque

运用msmq   msmq(microsoft message queue,微软动静部队)是在多个各别的运用之间实行彼此通讯的一种异步传输形式,彼此通讯的运用不妨散布于同一台呆板上,也不妨散布于贯串的搜集空间中的任一场所。它的实行道理是:动静的发送者把本人想要发送的消息放入一个容器中(咱们称之为message),而后把它生存至一个体例公用空间的动静部队(message queue)中;当地大概是他乡的动静接受步调再从该部队中取动身给它的动静举行处置。   在动静传播体制中,有两个比拟要害的观念。一个是动静,一个是部队。动静是由通讯的两边所须要传播的消息,它不妨是形形色色的媒介,如文本、声响、图象之类。动静最后的领会办法,为动静传播的两边事前约定,如许做的长处是,一是十分于对数据举行了大略的加密,二则沿用本人设置的方法不妨俭朴通讯的传播量。动静不妨含有发送和接受者的标识,如许惟有指定的用户本领看到只传播给他的消息和归来能否操纵胜利的回执。动静也不妨含有功夫戳,再不于接受方对某些与功夫关系的运用举行处置。动静还不妨含有到时功夫,它表白即使在指定功夫内动静还未达到则废除,这重要运用与功夫性关系较为精细的运用。   动静部队是发送和接受动静的公用保存空间,它不妨生存于外存中大概是物理文献中。动静不妨以两种办法发送,即特快专递办法(express)和可回复形式(recoverable),它们的辨别在乎,特快专递办法为了动静的赶快传播,把动静安置于外存中,而不放于物理磁盘上,以获得较高的处置本领;可回复形式在传递进程的每一办法中,都把动静写入物理磁盘中,以获得较好的妨碍回复本领。动静部队不妨安置在发送方、接受方地方的呆板上,也不妨独立安置在其余一台呆板上。恰是因为动静部队在安置办法上的精巧性,产生了动静传递体制的真实性。当生存动静部队的呆板爆发妨碍而从新启用此后,以可回复形式发送的动静不妨回复到妨碍爆发之前的状况,而以特快专递办法发送的动静则丧失了。另一上面,沿用动静传播体制,发送方需要再担忧接受方能否启用、能否爆发妨碍之类非需要成分,只有动静胜利发送出去,就不妨觉得处置实行,而本质上对方大概以至不曾开机,大概本质实行买卖时大概仍旧是第二天了。   沿用msmq带来的长处是:因为是异步通讯,不管是发送方仍旧接受方都不必等候对方归来胜利动静,就不妨实行余下的代码,所以大地面普及了实物处置的本领;当消息传递进程中,消息发送体制具备确定功效的妨碍回复本领;msmq的动静传播体制使得动静通讯的两边具备各别的物理平台变成大概。   在微软的.net平台上运用其供给的msmq功效,不妨轻快创造大概简略动静部队、发送大概接受动静、以至于对动静部队举行处置。   在.net产物中,供给了一个msmq类库"system.messaging.dll"。它供给了两个类辨别对动静东西和动静部队东西举行操纵。在不妨运用msmq功效之前,你必需决定你的呆板上安置了msmq动静部队组件,并保证效劳正在运转中。在运用asp.net编制程序时,应在头部运用:    <%@ assembly name="system.messaging"%>    <%@ import namespace="system.messsaging"%>   将msmq类库引入asp.net文献   1. 对动静部队的创造    dim msgque as messagequeue    msgque=new messagequeue(msgpath) 个中:msgpath不妨为当地独占部队,如".\myqueue",也不妨为其余呆板的国有部队,如"saidy\777$\myqueue",saidy为另一呆板名。   2. 动静的发送    dim msgque as messagequeue    msgque.send(msg)    个中:msg为任一东西。   3. 动静的接受   动静的接受又分红同步和异步办法两种,同步接受在规则功夫内从动静部队中掏出收到的第一条动静,当动静部队中没有动静时,步调居于等候状况;异步接受办法则是设置了一个事变处置因变量,当动静部队中第一个动静达到时登时触发该因变量。   1) 同步办法    dim msg as message   dim fmt as xmlmessageformatter   fmt= ctype(msgque.formatter,xmlmessageformatter)   fmt.targettypenames = new string(){"system.string"}   msg=msgque.receive(new timespan(0,0,3))   开始设置收到动静应变换成的方法,而后在指定功夫内去接受动静   2) 异步办法 dim fmt as xmlmessageformatter '设置接受动静典型 fmt = ctype(msgque.formatter,xmlmessageformatter) fmt.targettypenames = new string(){"system.string"} '设置动静处置因变量进口 addhandler msgque.receivecompleted, new receivecompletedeventhandler (addressof onreceivecompleted) '设置动静处置因变量 public shared sub onreceivecompleted(s as object, asyncresult as receiveasynceventargs) dim msgque as messagequeue = ctype(s,messagequeue) dim msg as message = msgque.endreceive(asyncresult.asyncresult) '此时msg.body即为所废除息东西 msgque.beginreceive() '从新设置异步接受办法 end sub '启用异步接受办法 msgque.beginreceive   动静部队摆设属性   对于部队的属性    path属性:它不妨确定援用部队的三种办法,路途援用、方法名援用、标识援用    category属性:标识暂时运用的部队的典型。category是部队一切者设置的guid值。该guid值不妨有guid天生东西爆发大概是用户自设置的数字值。guid值不会独一,如许才不妨按照沟通的guid值,把多个动静部队分别为各别的类型(category)。   跟发送数据典型关系的属性    formatter属性:确定在一个部队中怎样发送和接受动静的程序,以及不妨在一个动静中发送怎么办的实质。   和部队交互关系的属性    denysharereceive属性:确定同一功夫内惟有一个元件不妨考察动静部队中的动静。    canread和canwrite属性:确定部队能否不妨被读取大概是写入。    maximumqueuesize和maximumjournalsize属性:以千字节为单元树立一个部队(日记部队)的动静最大包含量。一旦接受的动静达到这个含量,新的动静将不复被接受。   普遍情景下,动静部队的最大值为动静部队处置员所树立,即使这个值没有遏制的话,那么缺省的动静部队最大含量将是无穷制的。    usejournalqueue属性::树立能否将收到的动静正片

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.