Sunday, 5 February 2012

Which config file has all the supported channels/protocol ?

Machine.config file has all the supported channels and formatter supported by .NET remoting.Machine.config file can be found at “C:\WINDOWS\Microsoft.NET\Framework\vXXXXX\CONFIG” path. Find <system.runtime.remoting> element in the Machine.config file which has the channels and the formatters. Below is a figure shown which can give a clear idea of how the file looks like.

Note :- Interviewer will not ask you to name all channels and formatters in machine.config but will definitely like to know in which file are all the formatter and channels specified, one sweet answer “Machine.config” can fetch you handsome job.


Channels and Formatter in machine.config file



How can you specify remoting parameters using Config files ?


Both remoting server and remoting client parameters can be provided through config files. Below is a sample of server config file which provides all remoting parameter values which we where providing through code.

<configuration>
<system.runtime.remoting>
<application name=”Server”>
<service>
<wellknown
mode=”SingleCall”
type=”Server.ClsServer, Server”
objectUri=”RemoteObject” />
</service>
<channels>
<channel ref=”tcp server” port=”9000" />
</channels>
</application>
</system.runtime.remoting>
</configuration>


Later this config file can be loaded using the following code.

RemotingConfiguration.Configure( AppDomain.CurrentDomain.SetupInformation.ApplicationBase & “Server.config”)


Same way we also have client.config file for loading the client remoting parameters.

<configuration>
<system.runtime.remoting>
<application name=”Client”>
<client url=”tcp://localhost:9000/RemoteObject”>
<wellknown
type=”CommonInterface.Icommon, Icommon”
url = “tcp://localhost:9000/Server/RemoteObject”/>
</client>
<channels>
<channel ref=”tcp client” />
</channels>
</application>
</system.runtime.remoting>
</configuration>


client remoting can then load the configuration file by using :-

Dim IobjCommon As CommonInterFace.Icommon
Dim StrData As String
Dim objServiceEntries As WellKnownClientTypeEntry()


RemotingConfiguration.Configure( AppDomain.CurrentDomain.SetupInformation.ApplicationBase & “Client.config”)
objServiceEntries =
RemotingConfiguration.GetRegisteredWellKnownClientTypes()
IobjCommon = Activator.GetObject(GetType(Icommon),
objServiceEntries(0).ObjectUrl.ToString())
StrData = IobjCommon.GetValue()

Console.WriteLine(“ Serve side Data is “ & StrData)
Console.ReadLine()

Output of Server and Client for RemotingObjectLifeTime project

No comments:

Post a Comment