.NET Remoting Server 性能分析及利用Loadrunner进行性能测试的方案
1概述
.NET Remoting 被誉为管理应用程序域之间的 RPC 的首选技术。应用程序域是公共语言运行库的隔离单元,它们是在进程内创建并运行的。这与 CLR 和非 CLR 托管的进程之间的进程间通信(互操作)不同。后一种类型的 RPC 通信(特别是 Web 上的)一般被认为是 Web 服务领域的问题。遗憾的是,这种看似清楚的区分,却由于可以在 IIS 下集成 .Net Remoting 服务器而变得模糊,“通过在 IIS 中集成 .NET Remoting 对象,可以将其作为一种 |>,jOnGf
Web 服务提供……” -e=;X!oe{
b !=F.|Q
9k
Remoting, 简而言之,我们可以将其看作是一种分布式处理方式。从微软的产品角度来看,可以说Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融 合到.Net平台下。Microsoft? .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这也正是我们使用Remoting的原因。为什么呢?在Windows操作系统中,是将应用 程序分离为单独的进程。这个进程形成了应用程序代码和数据周围的一道边界。如果不采用进程间通信(RPC)机制,则在一个进程中执行的代码就不能访问另一 进程。这是一种操作系统对应用程序的保护机制。然而在某些情况下,我们需要跨过应用程序域,与另外的应用程序域进行通信,即穿越边界。其主机与客户端的主 要任务如下:
L\ ip'af\\JJ ,
Mi,dyZ5
主机任务
=
· 设计服务,选择应用程序域、激活模式、通道、端口和发布。 · 实现 Remoting 主机应用程序域(例如 IIS/系统服务)。 · 配置主机激活、通道和协议设置。建议使用配置文件,可以通过调用 RemotingConfiguration.Configure 加载。 · 发布接口,供客户端使用(有关详细信息,请参阅下文中的“接口发布选择”)。
客户端任务 · 设计客户端,选择应用程序域和激活模式。 · 考虑是否需要注册通道和端口。 · 获取远程类型元数据。 · 实现客户端应用程序域。 · 配置客户端激活模式和其他类型的信息,如应用程序名称、通道和对象 URI 等。建议使用配置文件,可以通过调用 RemotingConfiguration.Configure 加载。
2 Remoting 解决方案的过程中可能会遇到的错误情况
在 任何情况下,都应该记住要使用标准的设备使用和监视方法。事件记录仍是非常有价值的信息资源,就象网络监视器工具一样,网络监视器可以专门用于详细查看客 户端/服务器的 Remoting 会话。中间层的 Remoting 服务器仍可以使用 Visual Studio .NET 提供的标准调试工具进行调试,例如,对于由 IIS 集成的 Remoting 服务器,可以通过向 ASP.NET 辅助进程附加调试会话(Visual Studio .Net | Debug [调试] | Processes [进程] | Attach [附加]) 来设置断点(如果资源可用)。但 Remoting 的错误很独特,下面列出了一些。请注意,所有错误都已使用 .NET Framework SDK 提供的 Basic Remoting Hello Sample 的各版本进行了复现,服务器和客户端也已在单机上运行。故障现象与在网络链接上的相同,只是由于 HTTP/TCP 的超时设置不同,需要相当长的时间才能出现错误。
Km)\$5|
\\6#&\\N&k
C>%dNTEwd
y&+4FC9U-d
T\\Y+`BUHD
0S^[[gnQX>qkN\
~y= /5rXK
5AL/@Xix,| h/-;D>Cd
hhV{!
*
E%li~6?0/6/3
ot YhK^?+
\\7ZOGM NqM?m
9 *v![1r^di-|>6U
yb*~!?dA Hbt-?\\m
W&)gi'
TgR
2.1丢失 MarshalByRef
由 于 Remoting 要通过引用以用于给定的类,该类必须只做一件事,就是继承 MarshalByRefObject。假设开发人员忘记做这项工作,我们将得到一个
System.Runtime.Remoting.RemotingException 类型的异常,说明我们有一个“丢失的 W cl>bPrDkx
<
RS,L
MarshalByReference”. J.`I*:nj':
^LCu
是否能正确捕获和处理这个 RemotingException 将取决于程序员。(想想这个开发人员忘记了他应记住的唯一一件事。) $l:t3-GeW
)Ng&,W$_[
解决方法是:记住继承 MarshalByRefObject!
Dw
2.2众所周知的服务器激活的错误服务器端点
对于服务器激活,Remoting 服务器将其侦听处声明为端点。该端点一般包括一个对象 URI(远程对象的众所周知名称),一个协议和一个端口号。当然,所有这些都可能配置错误。
2.3错误的 URI
由服务提供的 Basic Remoting Hello Sample 的 URI 是 HelloService.soap,如相关的 web.config 文件中所指定:
3DcaIOT}vVs :3#a;~ >u
A[Wll`ny
;b+~Mp
^,kwU5
\MF;~/z\\m2I{
>
U; ;4f]AUn^8 w?gHSu{U?c HY-0 &Jzw `U?7Y C] FVYT 5, to objectUri=\ o - nmLObv427 j`h{H'O0 =U[Zz^X+5! ys0m 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库NET Remoting Server 性能分析及利用Loadrunner进行性能测试的方在线全文阅读。
相关推荐: