Condividi tramite


.NET Framework Remoting Overview

This topic is specific to a legacy technology that is retained for backward compatibility with existing applications and is not recommended for new development. Distributed applications should now be developed using the Windows Communication Foundation (WCF).

.NET remoting enables you to build widely distributed applications easily, whether the application components are all on one computer or spread out across the entire world. You can build client applications that use objects in other processes on the same computer or on any other computer that is reachable over its network. You can also use .NET remoting to communicate with other application domains in the same process. (For details about programming application domains, see Programming with Application Domains.)

.NET remoting provides an abstract approach to interprocess communication that separates the remotable object from a specific client or server application domain and from a specific mechanism of communication. As a result, it is flexible and easily customizable. You can replace one communication protocol with another, or one serialization format with another without recompiling the client or the server. In addition, the remoting system assumes no particular application model. You can communicate from a Web application, a console application, a Windows Service – from almost anything you want to use. Remoting servers can also be any type of application domain. Any application can host remoting objects and provide its services to any client on its computer or network.

NoteNote

For security reasons, it is strongly recommended to expose Remoting endpoints through secure channels. Never expose insecure Remoting endpoints to the Internet.

To use .NET remoting to build an application in which two components communicate directly across an application domain boundary, you need to build only the following:

  • A remotable object.

  • A host application domain to listen for requests for that object.

  • A client application domain that makes requests for that object.

Even in a complex, multiclient or multiserver application, .NET remoting can be thought of in this way. The host and the client application must also be configured with the remoting infrastructure and you must understand the lifetime and activation issues that the remoting infrastructure introduces.

In This Section

  • Making Objects Remotable
    Describes the remoting boundaries and how to implement types that can be activated across those boundaries.
  • Channels
    Describes the system-defined channels and provides the information you need to decide which channel is best for your scenario.
  • Configuration of Remote Applications
    Describes the basic configuration requirements of the .NET remoting infrastructure, the types of configuration that can be used to satisfy these requirements, and the particular needs of various server and client application domains.
  • Security in Remoting
    Describes the security requirements to use remoting and the basic approaches to help build secure remoting applications.
  • CallContexts and Direct Remoting
    Describes how to pass extra data with remote method calls using CallContext and how to dynamically publish objects for remote use.

Reference

  • Remoting Settings Schema
    Provides reference information about the elements that can be used to configure .NET remoting using a configuration file.
  • System.Runtime.Remoting
    Provides reference information about the types that can be used to perform .NET remoting.
  • System.Runtime.Remoting.Channels
    Contains classes that support and handle channels and channel sinks, which are used as the transport medium when a client calls a method on a remote object.
  • System.Runtime.Remoting.Channels.Ipc
    Contains classes that define a communication channel for remoting that uses the Interprocess Communication (IPC) system of the Windows operating system.
  • Advanced Remoting
    Describes the basic points of interception and extension that you can use to customize the .NET remoting architecture.
  • Remoting Examples
    Provides several complete sample applications that use different elements of the remoting infrastructure.