资源预览内容
第1页 / 共60页
第2页 / 共60页
第3页 / 共60页
第4页 / 共60页
第5页 / 共60页
第6页 / 共60页
第7页 / 共60页
第8页 / 共60页
第9页 / 共60页
第10页 / 共60页
亲,该文档总共60页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
精品资料推荐.NET Remoting Server 性能分析及利用Loadrunner进行性能测试的方案1概述 |,jOnGf .NET Remoting 被誉为管理应用程序域之间的 RPC 的首选技术。应用程序域是公共语言运行库的隔离单元,它们是在进程内创建并运行的。这与 CLR 和非 CLR 托管的进程之间的进程间通信(互操作)不同。后一种类型的 RPC 通信(特别是 Web 上的)一般被认为是 Web 服务领域的问题。遗憾的是,这种看似清楚的区分,却由于可以在 IIS 下集成 .Net Remoting 服务器而变得模糊,“通过在 IIS 中集成 .NET Remoting 对象,可以将其作为一种 Web 服务提供” e=;X!oe b !=F.|Q 9kL 9Q Remoting, 简而言之,我们可以将其看作是一种分布式处理方式。从微软的产品角度来看,可以说Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融 合到.Net平台下。Microsoft .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这也正是我们使用Remoting的原因。为什么呢?在Windows操作系统中,是将应用 程序分离为单独的进程。这个进程形成了应用程序代码和数据周围的一道边界。如果不采用进程间通信(RPC)机制,则在一个进程中执行的代码就不能访问另一 进程。这是一种操作系统对应用程序的保护机制。然而在某些情况下,我们需要跨过应用程序域,与另外的应用程序域进行通信,即穿越边界。其主机与客户端的主 要任务如下: ipafJJ , Mi,dyZ5 主机任务 H =Km) 9$5| 设计服务,选择应用程序域、激活模式、通道、端口和发布。 6#&N&k C%dNTEwd 实现 Remoting 主机应用程序域(例如 IIS/系统服务)。 y&+4FC9U-d TY+BUHD 配置主机激活、通道和协议设置。建议使用配置文件,可以通过调用 RemotingConfiguration.Configure 加载。 0Sgn Vza 发布接口,供客户端使用(有关详细信息,请参阅下文中的“接口发布选择”)。 QXqkN y= /5rXK 客户端任务 5AL/Xix, | h/-;DCd 设计客户端,选择应用程序域和激活模式。 hhV!3* qE%li6 考虑是否需要注册通道和端口。 r*0/6/3 ot YhK?+ 获取远程类型元数据。 g7Z OGM NqM?m 实现客户端应用程序域。 9 *v!1 rdi-|6U 配置客户端激活模式和其他类型的信息,如应用程序名称、通道和对象 URI 等。建议使用配置文件,可以通过调用 RemotingConfiguration.Configure 加载。 yb*!?dA Hbt-m 2 Remoting 解决方案的过程中可能会遇到的错误情况 W&)giI 在 任何情况下,都应该记住要使用标准的设备使用和监视方法。事件记录仍是非常有价值的信息资源,就象网络监视器工具一样,网络监视器可以专门用于详细查看客 户端/服务器的 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 的超时设置不同,需要相当长的时间才能出现错误。 TgRNW clbPrDkx 2.1丢失 MarshalByRef u 对于服务器激活,Remoting 服务器将其侦听处声明为端点。该端点一般包括一个对象 URI(远程对象的众所周知名称),一个协议和一个端口号。当然,所有这些都可能配置错误。 AWllny ;b+GMp 2.3错误的 URI ,kwU5 由服务提供的 Basic Remoting Hello Sample 的 URI 是 HelloService.soap,如相关的 web.config 文件中所指定: qMF;/z m2I U;T/,P9G ;4fAUn8 wgHSuU?c HY-0YUQ &JzwU) n7YC FVYT5,i too =UZzX+5! G$isM =+ ys0m/V8 Ff UDm fU5e/Z$ -/1R.Q snp+aQ%P XQhDWq z| E9c,? -q,GOJ 此 服务是 IIS 集成的。IIS 集成要求 URI 带有后缀 .rem 或 .soap,我们在服务器上使用 .rope。在此实例中,我们将再次收到 RemotingException,这次显示的文本是“对象 在服务器上已断开或不存在”。 kA!*|. .f n)( 请确保各个 URI 相互匹配!当 IIS 集成 Remoting 服务器时,还要确保 URI 以 .rem 或 .soap 结尾。 kaH hd q!bz% 为了进行此项测试,我们切换到控制台集成的服务器,以下是该服务器的配置文件: afk=Zg h#EuXo %8gf7 uAZCgF 8.8: $ ;OfPvo FHHjA1K 7yINrdpRd /wm 7wq 2_ u(WKf 8SM?sPQ - ZM b;LAafqI |M55iUjwg +,56zt *?aL_a3r |,yILE. h%!_jt1 OdsNB_dk kbwNG pPw HSRJCwj| ck;ri g5) r8 S?43/T% 8GU9/9V 假设我们要在服务器端将协议更改为 TCP,而使客户端保留 HTTP。 0$%W =O;&28 我们将再次收到 RemotingException,这次的文本是“底层连接已关闭:接收时出现意外错误”。 HNJg C&-%#: 端口设置错误也会导致上述异常,唯一的不同是这种情况下,要用较长的时间才会出现错误。服务器和客户端之间的端口和协议必须匹配。 r /d$ wLwIk_q 2.5丢失 URI I)5AK* 另 一种可能性是远程服务器没有运行,例如,服务器由 IIS 集成,而虚拟应用程序或相关的程序集丢失。再次使用 Basic Hello Remoting 服务器,我们需要虚拟应用程序 RemotingHello 能够运行。如果不能运行,我们将收到未处理的异常(取决于调用代码),但这次的异常将是:“无法加载类型 clr:Hello.HelloService, Hello”。 W$)Z; kDB JP 在这些情况下,请确保虚拟应用程序在运行,而且所需的程序集正确地放置在相关的 bin 子文件夹中。 *)Ae sB bLtq 总而言之,客户端必须正确地引用服务器定义的端点以便激活服务器,这意味着,端口、协议和 URI 的定义必须相互匹配。这太容易出错了。因此,如果服务器的位置定义为: saLqSLw DO! zzuA#Z6e 0#lLuj LbV qqpW
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号