.NET Remoting 的功能可以用应用程序类型和所支持的协议描述,还可以通过 CLR Object Remoting 来描述。...CLR Object Remoting 是.NET Remoting 的一个重要方面。所有的语言结构(如构造函数、委托、接 口、方法、属性和字段等)都可以与远程对象一起使用。....NET Remoting 跨网络扩展 CLR 对象的功能, CLR Object Remoting 可以处理激活、分布式标识、生命周期和调用上下文等方面的工作。它与 XML Web 服务大不相同。...WCF 提供 ASP.NET Web 服务的功能,如 平台无关性,以及.NET Remoting 为.NET 与.NET 通信提供的性能和灵活性。....二进制格式化程序速度更快,可以有效地用在内部网环境中。当然,也可以创建自 定义格式化程序。 ● 格式化程序提供程序——格式化程序提供程序用于把格式化程序与信道关联起来。
NET Framework则使用.NET Remoting或Web Services技术来实作分布式处理的工作概念;在这里针对.NET Remoting的设计架构做一个初步的简介和Castle整合示例。....NET Framework提供了多种的机制来支持Remoting,如: .利用Channel来负责信息的发送与接收。...Channel 和 Formatter 在远程对象被使用之前,必须先在Server端注册好信息发送的信道(Channel),这些Channel可通过.NET Remotin configuration...在Channel的使用上,.NET Framework支持HTTP、TCP及SMTP等通道。...建立Remoting对象 2. 在Server上初始Remoting物件 3.
前言 项目中运用到.NET Remoting ,前段时间也看了下.NET Remoting的相关资料,感觉自己应该动手写个实例来梳理下对.NET Remoting认识和理解,不足的地方请大家指正。...简单介绍,使用Visual Studio 2010 ,在.NET Framework 4.0框架下,开发的ASP.NET web 应用程序。使用IIS 7.5。...实现过程 1.服务端 在web.config 进行配置信道和属性 remoting> ...2.客户端 需要引用下面的命名空间 using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Http...定义信道和实例化代理 if (ChannelServices.GetChannel("DataProClient") == null) {
本文告诉大家如何在使用 .net remoting 的时候,抛出异常。 所有在远程软件运行的类,如果需要传输到本地,都需要继承 MarshalByRefObject 或其他可以序列化的类。...在 .net Framework 4.0 就默认指定只反序列化基础类型,如果需要反序列化其他的类型,那么就需要设置TypeFilterLevel,设置的方法是在使用下面代码 public static...如果需要在 .net remoting 使用异常,那么需要自己创建一个异常,继承 RemotingException 反序列 因为默认的 RemotingException 没有反序列,所以需要添加 Serializable...StreamingContext context) : base(info, context) { } 如果有一些特殊的属性需要自己设置,建议创建一个默认构造函数,和两个方法...SerializationInfo info, StreamingContext context) //: base(info, context) 不使用基类的原因是基类会报告 找不到 ClassName 和其他很多的坑
正如前面所述,.NET Remoting 提供两个传输信道——TCP 和 HTTP。这两个信道都能使用套接字提供任意发送和接收进程之间的通信。...第二,与 IIS 集成是确保跨进程 .NET Remoting 调用的唯一途径,如下一节所述。 ASP.NET Web 服务和 .NET Remoting 基础结构都是可扩展的。...您可以过滤入站和出站消息,从多方面控制类型封送和元数据的生成。使用 .NET Remoting,还能实现您自己的格式化程序和信道。...更有意思的是,使用二进制格式化程序和 HTTP 信道的 ASP.NET 和 .NET Remoting 端点在性能上非常相近。...小结 虽然 .NET Remoting 基础结构和 ASP.NET Web 服务都可以进行跨进程通信,但每种设计适用于不同的用户。
本文告诉大家如何在 .net remoting 使用事件。 在我这个博客WPF 使用RPC调用其他进程已经有告诉大家如何简单使用。 但是对于事件的使用还是没有详细告诉大家。...写的程序使用,但是需要自己写安全的代码 TcpChannel 速度更快的方式,一般在局域网使用 IpcChannel 就在相同的机器内使用,速度最快,使用的是微软系统系统的方法 所有的...参见:Microsoft .Net Remoting系列专题之三:Remoting事件处理全接触 - 张逸 - 博客园 Microsoft .Net Remoting系列专题之二:Marshal、Disconnect...与生命周期以及跟踪服务 - 张逸 - 博客园 In Depth .NET Remoting Ingo Rammer,《Advanced .NET Remoting》 .net remoting 抛出异常....NET Remoting程序开发入门篇-博客-云栖社区-阿里云 .NET Remoting中的事件处理(.NET Framework 2.0)(一) - 大坏蛋 - 博客园 WPF 使用RPC调用其他进程
.Net Remoting(分离服务程序实现) - Part.3 2008-7-28 作者: 张子阳 分类: .Net 框架 分离服务程序集元信息和实现 在上面Remoting基本操作的范例中,我们发现了这样一个情况...使用这种共享服务程序集的方式构建Remoting程序,其运行时的示意图如下所示: ?...此时,我们可以应用.Net提供的Soapsuds.exe工具。...我认为这是一个误导,这个限制条件应该是针对于Soapsuds.exe这个工具,而不是你的Remoting程序。...而获得ClientProxy.dll生成文件时,使用的是 http协议和8502端口,可见没有对我们的Remoting程序产生影响。
.Net Remoting(基本操作) - Part.2 2008-7-26 作者: 张子阳 分类: .Net 框架 Remoting 构架 接下来我们考虑通常的情况,也就是 客户程序 与 宿主程序...Remoting 是.Net Framework的一个组成部分,作为一个框架(Framework),两个必备的特性是 基本实现 和 可扩展(可定制)。...Remoting 的构架也是如此,它的几乎每一个部分都是可以由程序员提供实现的,但是.Net也提供了一套默认实现,通常情况下是没有必要自行定制的。本章主要讲述Remoting的各个组成部分。...Remoting对象的三种激活方式 上一章 .Net Remoting - Part.1 中,我们提到了传值封送和传引用封送,并各给出了一张示意图,实际上,传引用封送还分为了三种不同的方式,下面来一一来介绍...除此以外,还需要添加System.Runtime.Remoting的引用,它一般位于C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Runtime.Remoting.dll
信道 信道用于.NET 客户端和服务器之间的通信。.NET Framework 4 发布的信道类使用 TCP 、HTTP 或IPC 进行通信。我们可以为其他的协议创建自定义信道。...因为防火墙通常让端口 80 处于打开的状态,所以客户端能 够访问 Web 服务器,因为.NET Remoting Web 服务可以侦听端口 80,所以客户端更容易使用它们。...下面的代码说明了如何在服务器端创建 TcpServerChannel: using System.Runtime.Remoting.Channels.Tcp; //省略......HTTPChannel、TcpChannel 和 IPCChannel 类都可以用于服务器和客户端。它们实现 IChannelSender 和 IChannelReceiver 接口。...TCP 和HTTP 信道都支持本例中使用的 name 和priority 信道属性。
格式化程序 .NET Framework 提供了两个格式化程序类,即: ● System.Runtime.Serialization.Formatters.Binary.BinaryFormatter...这两个格式化程序类都实现 System.Runtime.Remoting.Messaging.IRemotingFormatter 接口,该接 口定义 Serialize()方法和 Deserialize...ChannelServices 和RemotingConfiguration ChannelServices 实用程序类用于把信道注册到.NET Remoting 运行库中。...HttpServerChannel)ChannelServices.GetChannel("http"); 2 channel.StopListening(null); RemotingConfiguration 类是另一个.NET...Remoting 实用程序类。
.Net Remoting(应用程序域) - Part.1 2008-7-26 作者: 张子阳 分类: .Net 框架 引言 在互联网日渐普及,网络传输速度不断提高的情况下,分布式的应用程序是软件开发的一个重要方向...在.Net中,我们可以通过Web Service 或者Remoting 技术构建分布式应用程序(除此还有新一代的WCF,Windows Communication Foundation)。...理解Remoting 应用程序域基本概念 .Net中的很多概念都是环环相扣的,如果一个知识点没有掌握(套用一下数据结构中“前驱节点”这个术语,那么这里就是“前驱知识点”),就想要一下子理解自己当前所直接面临问题...为了更好地理解Remoting,我们也最好先了解一下Remoting的前驱知识点 -- 应用程序域。...通常的编程情况下下,我们几乎从不需要对AppDomain进行操作,这里我们仅看几个本文会用到的、有助于理解和调试Remoting的常见操作: 1.获取当前运行的代码所在的应用程序域,可以使用AppDomain
.Net Remoting(远程方法回调) - Part.4 2008-8-22 作者: 张子阳 分类: .Net 框架 Remoting中的方法回调 远程回调方式说明 远程方法回调通常有两种方式...因此,客户端应用程序与之前相比一个最大的区别就是需要注册通道,除此以外,它并不需要明确地指定一个端口号,可以由.NET自动选择一个端口号,而服务端则会通过客户端代理知道其使用的是哪个端口号。...,它默认为Low,但是当设为Low时一些复杂的类型将无法进行Remoting(主要是出于安全性的考虑)。...InvokeClient() Console.ReadKey(); // 暂停客户端 } } 我们看一下上面的代码,它仅仅是多了一个通道注册,注意我们将端口号设置为0,意思是由.NET...当客户端方法用OneWay标记后,.NET会自动实施异步调用,并且在客户端产生异常时也不会影响到服务端的运行。 这个例子就不演示了,感兴趣可以自己试一下。 感谢阅读,希望这篇文章能给你带来帮助!
在 URL 中,用 http、tcp 和ipc 指定协议,对于 HTTP 和TCP 信道,服务器名是 localhost,端口号是 8085 和8086。...Activator.GetObject(typeof(Hello), "tcp://localhost:8086/Hi"); GetObject()是System.Activator 类的一个静态方法,它调用 Remoting...为了使用 UrlAttribute 类,必须导入 System.Runtime.Remoting.Activation 名称空间: 1 object[] attrs = { 2 new UrlAttribute...Remoting.RealProxy。 在自定义代理的构造函数中接收远程对象的类型。调用 RealProxy 的构造函数,可以创建真实代理和 透明代理。....NET Framework 有一些消息类可以用于方法调用、响应,以及返回消息等。所有消息类都可以实 现IMessage 接口,该接口只有一个 Properties 属性。
客户端把 ping 和引用对象的信息发送给服务器。 因为客户端在服务器上可能有几百个引用的对象,所以 ping 中的信息非常多。...考虑到有成千上 万的客户端向服务器发送 ping 信息,.NET Remoting 为生命周期管理提供了一个伸缩性更强的解决 方案:即租约分布式垃圾收集器(Leasing Distributed Garbage...使用 ILease 接口,可以 获取租约的所有信息、所有租约属性,以及当前租约的时间和状态。通过 LeaseState 枚举类型指定状 态。...对于 ILease 接 口,必须声明 System.Runtime.Remoting.Lifetime 名称空间。...对于 UrlAttribute 类,必须导入 System.Runtime.Remoting.Activation 名称空间。 租约机制只能用于有状态的(客户端激活的和单一)对象。
所有消息接收器都实现 IMessageSink 接口,这个接口定义一个属性和两个方法: ● NextSink 属性——接收器使用这个属性到达下一个接收器,并向前传递消息。...● SyncProcessMessage()方法 ——对于同步消息,前面的接收器或远程基础结构调用这个方法, 它的 IMessage 参数用于发送消息和返回消息。...该方法有两个参数:消息和接收回应的消息接收器。 下面几节讨论可以使用的 3 个不同的消息接收器 1. 特使接收器 通过 IEnvoyInfo 接口,可以到达特使接收器链。
迄今为止,所有服务器示例都是运行在自驻留(self-hosted)的.NET 服务器上。自驻留的服务器必 须手动启动。.NET Remoting 服务器也可以在许多其他的应用程序类型中启动。...ASP.NET 对.NET Remoting 服务器有一种特殊支持。ASP.NET 可用于自动启动远程服务器。...与 可执行的驻留应用程序相反,驻留在 ASP.NET 中的.NET Remoting 在配置时使用不同的文件,但语 法相同。 ...为了使用 IIS(Internet Information Server,Internet 信息服务器)和ASP.NET 中的基础结构,必须 创建一个派生自 System.MarshalByRefObject...不再需要以前为服 务器创建和注册信道所使用的代码;这些代码所做的工作可以由 ASP.NET 运行库完成。
4、在VS.net开发环境中,专门对Web Service的调用进行了封装,用起来比Remoting方便 我建议还是采用Web Service好些,对于开发来说更容易控制 Remoting一般用在C/...S的系统中,Web Service是用在B/S系统中 后者还是各语言的通用接口 相同之处就是都基于XML 为了能清楚地描述Web Service 和Remoting之间得区别,我打算从他们的体系结构上来说起...UDDI 总体上来讲,.NET 下的 Web Service结构比较简单,也比较容易理解和应用: 一般来讲在.NET结构下的WebService应用都是基于.net framework以及IIS的架构之下...下面对.net Remoting进行概括的阐述: .net Remoting 是在DCOM等基础上发展起来的一种技术,它的主要目的是实现跨平台、跨语言、穿透企业防火墙,这也是他的基本特点,与WebService...而且它不依赖于IIS,用户可以自己开发(Development)并部署(Dispose)自己喜欢的宿主服务器,所以从这些方面上来讲WebService其实上是.net Remoting的一种特例。
而 VPN 网络可以提供这一点。 虚拟专用网络(VPN) 如果我们将 VPS 和其他散布在内网或者非固定 IP 的公网计算机连接起来,组成一个专用的网络,那么这个就是“虚拟专用网络”(VPN)。...安装 SoftEther VPN Server 在安装 SoftEther VPN 的服务端之前,我们需要确保你的 Linux 系统上有这些工具: make gcc net-tools 如果是 Debian...系统,可以运行命令安装: 1 2 3 apt-get install make apt-get install gcc apt-get install net-tools 接下来的安装过程有编译步骤...这里会提示你 VPN 服务器的 IP 和端口号。我们接下来在配置客户端的时候会用到这个 IP 和端口号。 个人电脑端 这里个人电脑端我们使用 Windows 系统。...第三步:安装和配置 VPN Server 设置过程是一步步来的,你可以考虑按照下图依次设置。
安全性和序列化的对象 .NETRemoting 和ASP.NET Web 服务的一个重要区别是对象编组的方式。在 ASP.NET Web 服务中,只有公共字段和属性通过网络传输。...而.NET Remoting 使用另一种序列化机制来序列化所有数据,包括所有私有数据。恶意客户端可以在序列化和反序列化阶段中破坏应用程序。...为了解决这个问题,跨.NET Remoting 边界传递对象时,定义两个自动反序列化级别:低级反序列化和完整反序列化。在默认情况下,使用低级反序列化。...如果数据应发送给服务器、客户端或双向发送,则可以使用 COM 给参数声明方向特性 [in]、[out]和 [in, out]。在 C#中,有相似的特性:ref 和 out 方法参数。...ref 和 out 方法参数可以用于可序列化的值类型和引用类型。
在使用 .NET Remoting 开发跨进程应用的时候,你可能会遇到一些异常。...找不到请求的服务 System.Runtime.Remoting.RemotingException:“找不到请求的服务” 或者英文版: System.Runtime.Remoting.RemotingException...public sealed override object InitializeLifetimeService() => null; } } 而对于第三种情况,你需要检查你是如何注册 .NET...Remoting 通道的,创建和访问方式必须匹配。...---- 参考资料 c# - .Net remoting error “Requested Service not found” - Stack Overflow 本文会经常更新,请阅读原文: https
领取专属 10元无门槛券
手把手带您无忧上云