I want the given application (Windows Service) to act as a remoting server as well as remoting client. In production I will run the two instances of my application monitoring each other over .NET Remoting and will report the failures accordingly.
I have written a basic pieces, and getting "The channel 'tcp' is already registered" exception..I want to set the channel configuration programmatically.
As others have said, if you don't specify the channel name, the code by default uses "tcp" and every channel has to have a unique name: So specify a unique name for each channel you open...
int tcpPort = 52131;
// ------------------------------------------------------------
BinaryServerFormatterSinkProvider serverProv =
new BinaryServerFormatterSinkProvider();
serverProv.TypeFilterLevel = TypeFilterLevel.Full;
RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.Off;
serverProv.TypeFilterLevel = TypeFilterLevel.Full;
IDictionary propBag = new Hashtable();
// -----------------------------------------
bool isSecure = [true/false];
propBag["port"] = tcpPort ;
propBag["typeFilterLevel"] = TypeFilterLevel.Full;
propBag["name"] = "UniqueChannelName"; // here enter unique channel name
if (isSecure) // if you want remoting comm to be secure and encrypted
{
propBag["secure"] = isSecure;
propBag["impersonate"] = false; // change to true to do impersonation
}
// -----------------------------------------
tcpChan = new TcpChannel(
propBag, null, serverProv);
ChannelServices.RegisterChannel(tcpChan, isSecure);
// --------------------------------------------
string uRI = MyUniversalResourceIndicatorName;
// ---------------------------------------------
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(ImportServiceManager), uRI ,
WellKnownObjectMode.SingleCall);
A channel with a specific port number can only be created by one application instance. You need to use different port numbers and channel names for each instance.
This requires using seperate channel templates (if you are using templates?).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With