首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

.NET Remoting:如何从远程对象访问服务器应用程序对象?

在云计算领域,.NET Remoting 是一种用于实现远程对象访问的技术,它允许客户端应用程序从远程服务器应用程序对象中调用方法和访问属性。以下是如何从远程对象访问服务器应用程序对象的步骤:

  1. 在服务器端,创建一个继承自 MarshalByRefObject 的类,并实现需要远程访问的方法和属性。
代码语言:csharp
复制
public class MyRemoteObject : MarshalByRefObject
{
    public string GetServerTime()
    {
        return DateTime.Now.ToString();
    }
}
  1. 在服务器端,创建一个 TcpChannel 并将其绑定到一个端口上。
代码语言:csharp
复制
TcpChannel channel = new TcpChannel(9999);
ChannelServices.RegisterChannel(channel, false);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(MyRemoteObject), "MyRemoteObject.rem", WellKnownObjectMode.Singleton);
  1. 在客户端,创建一个 TcpChannel 并连接到服务器端的端口。
代码语言:csharp
复制
TcpChannel channel = new TcpChannel();
ChannelServices.RegisterChannel(channel, false);
string url = "tcp://localhost:9999/MyRemoteObject.rem";
MyRemoteObject remoteObject = (MyRemoteObject)Activator.GetObject(typeof(MyRemoteObject), url);
  1. 在客户端,调用服务器端对象的方法和属性。
代码语言:csharp
复制
string serverTime = remoteObject.GetServerTime();

通过以上步骤,客户端应用程序就可以远程访问服务器端的对象,并调用其中的方法和访问属性。

推荐的腾讯云相关产品:

以上是我的回答,如果您还有其他问题,欢迎继续提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.NET Remoting 体系结构 之 在远程方法中传递对象

这些类的对象没有远程标识,因为完整的对象通过信道编组,而且与客户端序列化的对象 独立于服务器对象(或相反)。按值编组的类也称作未绑定的类,原因是它们没有依赖于应用 程序域的数据。...●  不能用于远程通信的类——这种类不能序列化,也不派生自 MarshalByRefObject 的。这些 类型的类不能在远程对象的公共方法中用作参数。它们只能用于创建它们的应用程序域中。...而.NET Remoting 使用另一种序列化机制来序列化所有数据,包括所有私有数据。恶意客户端可以在序列化和反序列化阶段中破坏应用程序。...为了解决这个问题,跨.NET Remoting 边界传递对象时,定义两个自动反序列化级别:低级反序列化和完整反序列化。在默认情况下,使用低级反序列化。...使用 ref 参数时,数据可以双向编组;使用 out 时,数据服务器发送到客户端;不使用参数 ref 和out 时,数据客户端发送到服务器

1K20

解析.NET对象的跨应用程序访问(下篇)

:    1.对象代理概述:       本文主要是讲解对象的跨应用程序访问,前面介绍了应用程序域和程序集的相关信息,在这里就要开始讲解如何来实现对象的跨应用程序域的访问操作。...对象应用程序域的操作需要知道代理和封送,代理提供了和远程对象完全相同的接口,代理有着和远程对象完全一样的接口和名称,对于客户端而言,代理就好像远程对象一样。...(2).ProxyAttribute.CreateProxy():创建由指定的 ObjRef描述并位于服务器上的远程对象远程处理代理的实例。 ...该方法接收5个参数,objRef:对要为其创建代理的远程对象对象引用;serverType:远程对象所在的服务器的类型;serverObject:服务器对象;serverContext:服务器对象所在的上下文...1.传值封送:       当位于A应用程序域的对象传递给B应用程序域,.NET将A中对象的状态进行复制、序列化、然后在B中重新创建,并通过代理对象进行访问。 ?

1.3K60

解析.NET对象的跨应用程序访问(上篇)

对于.NET项目,我们使用较多的分布式结构有Webservice,.Net remoting,MSMQ,WCF,WebAPI等等,我们在使用这些框架的时候,从这些分布式框架中得到了很好的用户体验。...本文主要讲解对象应用程序域中的传递。主要讲解应用程序域的一些核心对象,对于应用程序域的操作出现的比较少,所以在这里给出的是程序集的一些基本操作。如有不足之处,还望多多指正。...在.NET种可以通过System.AppDomain类型访问AppDomain。在这里我们具体了解一下System.AppDomain类型的方法和属性。...你可以在Thread.CurrentThread属性中,硬线程的TLS中提取当前的软线程对象。     (2).GetData():为指定名称获取存储在当前应用程序域中的值。...,本系列主要讲解.NET对象的跨应用程序域的传递,由于设计应用程序域的内容,所以本文主要讲解了一些基本概念,以及一些基本的对象,对于应用程序域包含的程序集的相关内容将在下面进行操作。

95950

.NET Remoting 之了解

NET Remoting 总是在客户端和服务器之间提供较紧密的耦合,因为它们共享相同的对象类 型。.NET Remoting 给CLR 对象提供了跨不同应用程序域调用方法的功能。...NET Remoting 还是用于对等通信的一种好技术。 .NET Remoting 术语详解   .NET Remoting 可以用于访问另一个应用程序域中的对象。...不同应用程序可以在同一进程内的不同应用 程序域中运行。在同一应用程序域中的对象可以直接进行交互,但是在访问不同应用程序域中的对 象时,必须使用代理。...下面列出了.NET Remoting 体系结构的主要元素: ●  远程对象——远程对象是运行在服务器上的对象。客户端不能直接调用远程对象上的方法, 而要使用代理。...消息是为客户端和服务器之间的通信而创建的。消息包含 远程对象的信息、被调用方法的名称以及所有的参数。 ●  格式化程序——格式化程序用于定义消息如何传输到信道中。.

77910

.Net Remoting(基本操作) - Part.2

因为Sinlgton对象是在第一次访问(比如方法调用)时由.Net自动创建的,后继的访问不能重新创建对象,所以它不提供有参数的构造函数。...注册对象 注册通道之后,我们需要告诉.Net允许哪些类型可以被远程程序访问,这一步骤称为注册对象。...对象位置 经过上面两步,我们已经开启了通道,并注册了对象(告诉了.Net哪个类型允许远程访问)。那么客户端如何知道远程对象位置呢?...除此以外,我们依然要添加 System.Runtime.Remoting程序集。 客户应用程序的任务只有一个:获取远程对象,调用远程对象服务。...注册对象的目的是告诉.Net,这个类型的对象将在远程创建,同时还要告诉.Net远程对象的位置。

50220

.Net Remoting(应用程序域) - Part.1

简单来说,应用程序域只是允许它所加载的程序集访问由.Net Runtime所提供的服务。...最后,我们通过这个代理访问这个对象,此时,因为代理访问的是在本地重新创建的对象而非远程对象,所以当我们在对象上调用ShowDomain()时,显示的是ConsoleApp.exe。...关于客户激活对象,后面我们会再看到,这里大家先留个印象。 客户应用程序(域)、服务端程序集、宿主应用程序(域) 看到Remoting这个词,我们通常所理解的可能只是本地客户机与远程服务器之间的交互。...对于Remoting,可能大家理解它就包含两个部分,一个Server(服务器端)、一个Client(客户端)。...但是如果AppDomain的角度来看,服务端的AppDomain仅仅是提供了一个实际提供服务的远程对象的运行环境。

56620

c# Romting简单示例

1.什么是Remoting 简而言之,我们可以将其看作是一种分布式处理方式。微软的产品角度来看,可以说 Remoting 就是 DCOM的一种升级,它改善了很多功能,并极好的融合到.NET平台下。....NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这也正是我们使用 Remoting 的原因。...在 Remoting 中是通过通道(channel)来实现两个应用程序域之间对象的通信的。 首先,客户端通过Remoting访问通道以获得服务端对象,再通过代理解析为客户端对象。...远程对象代码可以运行在服务器上(如服务器激活的对象和客户端激活的对象),然后客户端再通过 Remoting 连接服务器,获得该服务对象并通过序列化在客户端运行。...在 Remoting 中,对于要传递的对象,设计者除了需要了解通道的类型和端口号之外,无需再了解数据包的格式。但必须注意的是,客户端在获取服务器对象时,并不是获得实际的服务端对象,而是获得它的引用。

11210

WCF,Net remoting,Web service

由于WCF完全是由托管代码编写,因此开发WCF的应用程序与开发其它的.Net应用程序没有太大的区别,我们仍然可以像创建面向对象应用程序那样,利用WCF来创建面向服务的应用程序。    ....NET Remoting 使您能够在任何类型的应用程序(包括 Windows 窗体、托管的 Windows 服务、控制台应用程序或 ASP.NET 辅助进程)中灵活地托管远程对象。...NET Remoting 管线不包括启动远程服务器所需的 DCOM 类型的服务控制管理器 (SCM)。如果任意进程中提供远程对象,则需要确保那些进程正在运行。...如果 ASP.NET 提供远程对象,则可以利用 Aspnet_wp.exe 辅助进程,这样既可自动启动又具有线程安全的优势。...如果确实需要这一功能,简单的解决方案是在 .NET 企业服务的服务器应用程序中部署一个 System.EnterpriseServices.ServicedComponent 派生的类(更多信息,请参见

1.4K50

ASP.NET中各命名空间及作用

此命名空间为 .NET Framework 对象提供了对 COM+ 服务的访问,从而使 .NET Framework 对象更适用于企业级应用程序。 ...System.Runtime.Remoting.Activation  提供支持服务器和客户端远程对象激活的类和对象。 ...System.Runtime.Remoting.Messaging  包含用于创建和远程处理消息的类。远程处理基础结构使用消息与远程对象进行通信。消息用于传输远程方法调用、激活远程对象和交流信息。...System.Runtime.Remoting.Proxies  包含控制和提供代理功能的类。代理是作为远程对象映像的本地对象。代理使客户端可以跨远程处理边界访问对象。 ...它还为这些对象提供了失效功能,并为您提供了添加和移除这些对象的方法。您也可以添加依赖于其他文件或缓存项的对象,并在某个对象 Cache 中被移除时执行回调以通知您的应用程序

3.1K10

.NET Remoting 体系结构 之 在 ASP.NET 中驻留远程服务器

迄今为止,所有服务器示例都是运行在自驻留(self-hosted)的.NET 服务器上。自驻留的服务器必 须手动启动。.NET Remoting 服务器也可以在许多其他的应用程序类型中启动。...在 Windows 服务中, 服务器可以在系统启动时自动启动,此外,进程可以通过系统账户的证书运行。   ASP.NET 对.NET Remoting 服务器有一种特殊支持。...ASP.NET 可用于自动启动远程服务器。与 可执行的驻留应用程序相反,驻留在 ASP.NET 中的.NET Remoting 在配置时使用不同的文件,但语 法相同。   ...   现在,客户端使用下面的配置文件就可以连接到远程对象上。...在这里必须指定远程对象的 URL, 这个 URL 包括 Web 服务器 localhost、Web 应用程序的名称 RemoteHello(该名称在创建虚拟网站时 指定)、远程对象 HelloService.soap

76320

.NET简谈组件程序设计之(初识NetRemoting)

在本人的“.NET简谈组件程序设计之(初识远程调用) ”一文中,我们了解到什么是远程调用或者说在.NET平台上远程调用是什么样子的,可能和偏低层(Socket\Rpc)的远程调用有点距离。...上篇文章我简单的介绍了什么是远程调用,在.NET里面只要是跨AppDomain(应用程序域)的都属于远程调用,因为.NET在我们物理宿主进程里面又抽象了一个他自有的逻辑宿主。...原有的同一进程内的远程调用框架没有变,Remoting只是添加了点东西以支持夸进程夸网络。(比如:RefObjet对象\RealProxy对象)。...那么我们来看一个简单的示例: 1:对照上图,最下面的是关于通讯的端点,那么我们首先需要设置一个能够进行远程通讯的地址,在Remoting里面就是Channel(信道),消息信道出去流线服务器端的信道。...,当我们在实例化对象的时候Remoting会自动的帮我们进行远程处理。

27740

一个 PC上的 “ WormHole ” 漏洞

背景 联想ThinkVantage System Update软件用于帮助用户联想的服务器中直接下载并安装软件、驱动、BIOS的更新,极大的简化了用户更新系统的难度和工作量。...问题描述 在System Update的5.6.0.34版本中,UNCServer.exe通过.NETRemoting机制,通过TCP服务器提供多种功能。....NET Remoting发展自DCOM,是一项比较老的.NET分布式处理技术。它序列化服务端的对象和数据并导出,客户端通过HTTP、TCP、IPC信道跨越进程边界实现对服务端对象的引用。...客户端可以连接并获取其引出对象,进行文件下载、应用程序执行等操作。...如果应用程序仍在使用Remoting技术进行分布式处理或通信,应意识到其潜在的安全问题,稍有不当则可能引入安全漏洞。

91800

.NET Remoting 体系结构 之 信道的功能和配置 (二)

ChannelServices 和RemotingConfiguration  ChannelServices 实用程序类用于把信道注册到.NET Remoting 运行库中。...在服务器端,这个类用于为服务器 激活的对象注册远程对象类型,把远程对象编组到已编组的对象引用类 ObjRef 中。ObjRef 是在网络 上发送的对象的可序列化表示。...在客户端,为了对象引用中创建代理,需要使用 RemotingServices 类打乱远程对象。 1....第 二个参数 Hi 是远程对象的 URI,客户端访问远程对象时要使用这个 URI。后一个参数是远程对象 的模式。...Singleton 参数,服务器可以 创建单一对象。必须考虑单一对象所使用资源的锁定问题。在客户端并发地访问单一对象 时,必须确保数据不能被损坏,还必须检查锁定是否足够有效,以便实现必要的可伸缩性。

66110

.NET Remoting 体系结构 之 生命周期管理

只要客户端调用远程对象上的方法,就会产生一个 System.Runtime.Remoting.RemotingException 类型的异常。...考虑到有成千上 万的客户端向服务器发送 ping 信息,.NET Remoting 为生命周期管理提供了一个伸缩性更强的解决 方案:即租约分布式垃圾收集器(Leasing Distributed Garbage...如果在应用程序域外部引用客户端激活的对象,就需要创建租约。租约有一个租约时间。当 租约时间为 0时,租约就已经到期,此时远程对象就会断开连接,后由垃圾收集器回收。 1....通过 LifetimeServices 实用程序类,可以为应用程序域中所有远程对象的租约设置或获取属性。 4....使用 System.Runtime.Remoting.Lifetime.LifetimeServices 实用程序类,服务器自身就可以为所有 远程对象更改默认的租约配置: LifetimeServices.LeaseTime

61110

.NET简谈组件程序设计之(初识远程调用)

在.NET1.0版本出来的时候,要想进行远程调用基本上都是通过WebService的方式。...我们都是哪些零散的知识里慢慢摸索,效果不太理想。 今天我也来简单的介绍一下我理解的Remoting。不仔细研究一下还真不知道它的厉害,完全的托管平台、高扩展性、灵活性。...任何跨越应用程序域的访问.NET都将它视为远程调用,不管是在同一个进程中的两个应用程序域,还是一台PC上的两个进程中的两个应用程序域,还是跨越网络的两个应用程序域,.NET都通过代理的方式进行调用。...那么如果一个进程中的应用程序域想调用另一个进程中的应用程序域的对象必须通过物理进程的承载才行,也就是涉及到了IPC的调用。...看起来确实比较复杂,但是.NET为我们做了个很好的统一的远程处理框架.NetRemoting,我们只需要简单的配置就能很方便的进程远程调用。

28220

【深入浅出C#】章节 8: 网络编程和远程通信

8.2 使用C#实现分布式对象通信 在 C# 中实现分布式对象通信可以借助 .NET Remoting 技术。....短暂对象可能是临时性的,仅用于单次操作,而长期对象可以在整个应用程序生命周期内保持活动状态。 远程对象激活: 在 .NET Remoting 中,远程对象需要激活才能在远程节点上使用。...远程引用确保了对象的通信和交互。在 .NET Remoting 中,WellKnownObjectMode 可以控制远程对象服务器上的生存期,以及它是否为单例对象。...远程对象的销毁: 远程对象可能需要在不同节点上销毁。在 .NET Remoting 中,你可以通过 RemotingServices.Disconnect() 方法远程对象中断连接。...Web服务到RPC框架,分布式对象通信到远程调试,远程通信在不同领域都有广泛的应用。然而,无论应用场景如何变化,最佳实践始终是指导原则。

56632

【深入浅出C#】章节 8: 网络编程和远程通信:网络编程和远程通信

8.2 使用C#实现分布式对象通信 在 C# 中实现分布式对象通信可以借助 .NET Remoting 技术。....短暂对象可能是临时性的,仅用于单次操作,而长期对象可以在整个应用程序生命周期内保持活动状态。 远程对象激活: 在 .NET Remoting 中,远程对象需要激活才能在远程节点上使用。...远程引用确保了对象的通信和交互。在 .NET Remoting 中,WellKnownObjectMode 可以控制远程对象服务器上的生存期,以及它是否为单例对象。...远程对象的销毁: 远程对象可能需要在不同节点上销毁。在 .NET Remoting 中,你可以通过 RemotingServices.Disconnect() 方法远程对象中断连接。...Web服务到RPC框架,分布式对象通信到远程调试,远程通信在不同领域都有广泛的应用。然而,无论应用场景如何变化,最佳实践始终是指导原则。

35421

.Net Remoting(远程方法回调) - Part.4

.Net Remoting(远程方法回调) - Part.4 2008-8-22 作者: 张子阳 分类: .Net 框架 Remoting中的方法回调 远程回调方式说明 远程方法回调通常有两种方式...: 客户端也存在继承自MarshalByValueObject的类型,并将该类型的实例作为参数传递给了远程对象的方法,然后远程对象在其方法中通过该类型实例的引用对它进行调用(访问其属性或者方法)。...它包含两部分:(1)客户端对象,用于支持服务端的方法回调,以及其它的业务逻辑;(2)客户端控制台应用程序(也可以是其它类型程序),它仅仅是注册通道、注册端口、注册远程对象,提供一个客户端对象的运行环境。...但现在问题是:服务端如何知道客户端使用了哪个端口?...;再次调用GetCount()方法时,对于服务端来说,是一个新建的客户端localClient对象,所以count值继续输出为1,也就是说两个客户端对象是独立的,对服务器来说,可以将客户端视为客户激活方式

71220

.NET Remoting 体系结构 之 信道的功能和配置 (一)

因为防火墙通常让端口 80 处于打开的状态,所以客户端能 够访问 Web 服务器,因为.NET Remoting Web 服务可以侦听端口 80,所以客户端更容易使用它们。...当执行远程对象上的方法调用时,导致客户信道对象就把消息发送到远程信道对象中。 服务器应用程序和客户端应用程序都必须创建信道。...下面的代码说明了如何服务器端创建 TcpServerChannel: using System.Runtime.Remoting.Channels.Tcp; //省略......服务器信道必须指定一个众所周知的端口,在 访问服务器时,客户端必须使用该端口。...TCP 服务器信道支持 rejectRemoteRequests,只允许本地计算机上连接客 户端。

90220

dotnet remoting 使用事件

本文告诉大家如何在 .net remoting 使用事件。 在我这个博客WPF 使用RPC调用其他进程已经有告诉大家如何简单使用。 但是对于事件的使用还是没有详细告诉大家。...这就是用事件的方法,需要记得 在库创建两个类,一个类用于其他进程发送事件给呆磨,另一个类用于接收这个事件,把事件转发给呆磨 原因是在使用 += 需要序列化右边的这个类,而如何直接对 Foo 类进行添加事件...,否则调用回调方法就会出现下面异常 System.Runtime.Remoting.RemotingException:“对象“RemoteEventHandle”已经断开连接或不在服务器上。”...HResult -2146233077 关于 dotnet remoting对象回收请看Microsoft .Net Remoting系列专题之二:Marshal、Disconnect与生命周期以及跟踪服务...与生命周期以及跟踪服务 - 张逸 - 博客园 In Depth .NET Remoting Ingo Rammer,《Advanced .NET Remoting》 .net remoting 抛出异常

31110
领券