如何检测Remote Objects是否部署成功
How to monitor if Remote Objects have been deployed successfully
在调试.Net Remoting程序时,经常会出现一些莫名其妙的问题,IDE提示的异常信息有时也不一定正确。很多时候都是自己粗心,配置configuration文件上出了问题,包括Client和Server端的配置文件。另外,我感觉.Net Remoting中还有许多陷阱(trap),如前面posting《SoapSuds工具的一些不足之处》所提及的,不只这些,还有许多。如果陷入这些trap,而且又不知道的话,就麻烦了,调试半天也不知道问题在哪里。有空的时间,我准备花些时间整理一下.Net Remoting中的trap。
言归正传,这里看看如何检测Remote Objects是否部署成功。Remote Objects部署成功是第一步,否则Client端调用Remote Objects肯定会抛异常信息了。因此,如出现异常信息,首先检测Remote Objects是否成功部署在Server端。
下面根据激活类型分两种情况:SAO(服务端激活对象)和CAO(客户端激活对象)。
1.SAO对象
对SAO对象而言,比较简单。根据Server端配置文件中<wellknown>节或RemotingConfiguration.RegisterWellKnownServiceType()方法中指定的URL,通过IE浏览器检测,如下所示:
http://<hostname>:<port>/<ApplicationName>/<URL>?wsdl
如果IE返回WSDL信息,则显示Remote Objects部署成功。其实只要看到IE有正确返回信息就行了,如果你了解WSDL(Web Services Description Language),可以进一步看看是否调用的Remote Method是否有出现。
需要注意的地方:
(1)如果Remote Objects部署在IIS中,<ApplicationName>则为虚拟目录名称(Virtual Directory Name),并且不要在Web.Config配置文件中设定Application Name。同时Remote Objects的URL需要以soap或rem为后缀名。
(2)如果Remote Objects不是部署在IIS中,则必须在configuration配置文件或者在代码中RemotingConfiguration.Application=”<ApplicationName>”来指定ApplicationName。
2.CAO对象
对于CAO对象,和SAO对象不一样。需要如下的URL来测试:
http://<hostname>:<port>/<ApplicationName>/RemoteActivationService.rem?wsdl
后面是RemoteActivationService.rem,这点和SAO对象不一样。
需要注意的地方:
(1)在调用CAO对象时,需要在Client端的配置文件中<client>节指定Remote Objects的url属性。如何使用.Net Remoting的配置文件,可以参考《.Net Remoting配置文件的用法》。
Reference:
1. Ingo Rammer, Advanced .Net Remoting.
2. Rickie, 《.Net Remoting配置文件的用法》.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构