仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 511|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页设计之前搜集的一些材料---在ASP中利用MSMQ...

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:49:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。办理|历程|成绩在ASP中利用MSMQ
当ASP程序由于某个历程消费了太长的工夫而招致在客户端过时时,
当会见者已保持了对你的网站的会见而分开往了其余网站时。
或则你的服务器上堵塞了大批的逝世行列时,毛病"Serveristoobusy"
产生了。
当你在计划网站的过程当中碰着这些成绩时,一个办理举措就是利用
MicrosoftMessageQueue(MSMQ)来停止这些历程。

MicrosoftMessageQueue的基础先容:
MSMQ(代号又叫"Falcon")是运转在WindowsNT的服务,它供应使用程序之间
的异步通信。你能够在NT4OptionPack中找到它。
MSMQ的基础观点十分的复杂:它能够被当作是使用程序之间的email.
一个动静被打包到一个特定范例的容器中,并把这个动静保留到一个用与出格
感化的行列中直到收信者承受该动静为止。
这些行列可以确保MSMQ的传送,而不论以后收集毗连的情况怎样。
象一切的电子邮件一样,MSMQ动静有一个发送者和一个吸收者,个中的吸收者
应当可以会见行列。一个单一行列中的一个独自动静,它具有
多个承受者比方respinder。而动静的发送者一般是WebServer(IIS)。

MSMQ也可以和其他动静体系举行通信。比方:
SunSolaris,HP-UNIX,OS/2,VMS,AS/400平台
象其他的BackOffice服务一样,MSMQ有一个COMAPI(mqoa.dll)供应给开辟者开辟
程序。个中最经常使用的三个类为:MSMQQueueInfo,MSMQQueue,MSMQMessage.

MSQMQueueInfo
MSMQQueueInfo同意你新建,翻开,删除行列中的动静.要和行列创建接洽起首必要设置
PathName,这是一个定名行列的属性,它告知MSQM是哪台呆板上的行列。
<%
DimobjQueueInfo
DimobjQueue
SetobjQueueInfo=Server.CreateObject("MSMQ.MSMQQueueInfo")
objQueue.PathName=".MyQueue"
SetobjQueue=objQueueInfo.Open(MQ_SEND_ACCESS,MQ_DENY_NONE)
%>
下面的代码翻开一个叫MyQueue的当地行列.假如行列在别的一台服务器上,代码应当是如许的
objQueue.PathName="SomeOtherComputerMyQueue"
翻开行列中有两个参数:Access和ShareMode.Access暗示将要对行列实行甚么操纵。
一样平常有三个操纵:
MQ_PEEK_ACCESS(32),MQ_RECEIVE_ACCESS(1),MQ_SEND_ACCESS(2).
MQ_PEEK_ACCESS用来在特定的行列中查找动静。但对该动静不举行操纵。
MQ_RECEIVE_ACCESS用来在读取行列中的动静后删除它。
MQ_SEND_ACCESSis用来在行列中发送动静,但不吸收动静.
注重的是利用翻开操纵后前往了一个MSMQQueue工具.
上面是一个典范的新建和删除操纵:
<%
DimobjQueue
SetobjQueue=Server.CreateObject("MSMQ.MSMQQueueInfo")
objQueue.PathName=".MyQueue"
objQueue.Create
%>

<%
DimobjQueue
SetobjQueue=Server.CreateObject("MSMQ.MSMQQueueInfo")
objQueue.PathName=".MyQueue"
objQueue.Delete
%>

MSMQQueue
MSMQQueue类用来形貌一个在MSMQ服务中翻开的行列。该类供应了一个用来
在指针行列中的动静举行轮回的功效。你不克不及够翻开一个利用了MSMQQueue类的行列
要这么干只可以利用MSQMQueueInfo,见上
固然很多ASP使用程序一般利用MSMQ来发动静,可是良多时分也必要ASP来显现这个动静的详细内容。
猎取动静的体例有两种:同步体例,异步体例,可是ASP只可以利用同步体例。
这是由于ASP不克不及够在服务端声名一个WithEvents变量。
上面先举一个异步体例利用MSMQ的例子(仅VB中)
OptionExplicit
Dimm_objQueueInfoAsNewMSMQQueueInfo
Dimm_objQueueAsMSMQQueue
DimWithEventsm_objMSMQEventAsMSMQEvent

PrivateSubForm_Load()
m_objQueueInfo.PathName=".MyQueue"
m_objQueueInfo.Label="MySampleQueue"
OnErrorResumeNext
m_objQueueInfo.Create
OnErrorGoTo0
Setm_objQueue=m_objQueueInfo.Open(MQ_RECEIVE_ACCESS,MQ_DENY_NONE)

Setm_objMSMQEvent=NewMSMQEvent
m_objQueue.EnableNotificationm_objMSMQEvent,MQMSG_CURRENT,1000
EndSub

PrivateSubm_objMSMQEvent_Arrived(ByValQueueAsObject,ByValCursorAsLong)
Dimm_objMessageAsMSMQMessage
Setm_objMessage=Queue.PeekCurrent
MsgBox"MessageReceived:"&m_objMessage.Label
m_objQueue.EnableNotificationm_objMSMQEvent,MQMSG_NEXT,10000
EndSub

PrivateSubm_objMSMQEvent_ArrivedError(ByValQueueAsObject,ByValErrorCodeAsLong,ByValCursorAsLong)
MsgBox"Erroraccorded:"&ErrorCode
EndSub
这段代码起首创建一个行列(假如它还不存在的话)。
然后m_objMSMQEvent工具经由过程挪用EnableNotification毗连到MSMQQueue工具.
一旦毗连到MSMQEvent工具,接上去必要做的仅仅是完成Arrived和Arrived_Error(可选的)事务.
Arrived事务当一个新的动静抵达行列时将被触发
该事务前往两个指针,一个是指向行列中应当历来入手下手读动静的地位,别的一个是以后的地位。
假如产生毛病,将触发ArrivedError事务
当同步猎取动静时,会一向比及动静可猎取或则超不时程序才会不被挂起。
代码以下:
</p>缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。
飘灵儿 该用户已被删除
沙发
发表于 2015-1-18 12:55:06 | 只看该作者
那么,ASP.Net有哪些改进呢?
爱飞 该用户已被删除
板凳
发表于 2015-1-22 05:13:18 | 只看该作者
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
小妖女 该用户已被删除
地板
发表于 2015-1-30 22:54:57 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
山那边是海 该用户已被删除
5#
发表于 2015-2-6 16:34:33 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
活着的死人 该用户已被删除
6#
发表于 2015-2-17 07:50:44 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-5 17:19:34 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
若天明 该用户已被删除
8#
发表于 2015-3-12 10:51:01 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
谁可相欹 该用户已被删除
9#
发表于 2015-3-19 20:50:54 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 00:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表