To enable client applications to use our remotable object we need to build a Host application which will listen for object requests. This application will register a channel and register our remotable object with the .NET remoting system to use that channel to listen for requests.
.NET includes two default channels:
-
HttpChannel
(using SOAP formatting) -
TcpChannel
(using binary formatting)
NOTE: Because remote configuration is done on a per-application-domain basis, the application domain must be running to listen for requests.
Create a console application project called "RemotingHost
". Add a reference to our RemotableType and add the following class.
using System;
using System.Runtime.Remoting;
public class RemotingHost
public static void Main(){
RemotingConfiguration.Configure("RemotingHost.exe.config");
Console.WriteLine("Host Running. Listening for Object Requests.");
Console.ReadLine();
}
}
You can configure .NET remoting through code or via a configuration file. In this example we are using app.config so add a app.config file to you project and add the following entries:
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown
mode="Singleton"
type="RemotableType, RemotableType"
objectUri="RemotableType.rem"
/>
</service>
<channels>
<channel ref="http" port="8989"/>
</channels>
</application>
</system.runtime.remoting>
</configuration>
Our Host class loads the config information from the app.config
file using the RemotingConfiguration.Configure()
method.
Comments