Нужно сделать пункт
Два варианта распределенных СУБД (с реализацией клиентов и серверов), используя по своему выбору две технологии из нижеперечисленных: Java RMI/JRMP, Java RMI/IIOP, EJB, Net Remoting, IIOP Net.
СУБД написана... как видно из списка истинный .NET-чик выберет Net Remoting и IIOP Net. Но код на Net Remoting — работает а на IIOP Net нет.
сервер:
//Net
IDictionary props = new Hashtable();
props["name"] = "tcp";
props["port"] = 7777;
BinaryServerFormatterSinkProvider bsf = new BinaryServerFormatterSinkProvider();
bsf.TypeFilterLevel = TypeFilterLevel.Full;
TcpChannel chan = new TcpChannel(props, null, bsf);
ChannelServices.RegisterChannel(chan, false);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingServer), "RemotingServer", WellKnownObjectMode.Singleton);
//IIOP
IiopChannel chan = new IiopChannel(7778);
ChannelServices.RegisterChannel(chan, false);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingServer), "RemotingServer", WellKnownObjectMode.Singleton);
клиент:
TcpChannel chan = new TcpChannel();
ChannelServices.RegisterChannel(chan);
RemotingConfiguration.RegisterWellKnownClientType(typeof(RemotingServer), "tcp://localhost:7777/RemotingServer");
m_serverNet = new RemotingServer();
IiopChannel chan = new IiopChannel();
ChannelServices.RegisterChannel(chan, false);
RemotingConfiguration.RegisterWellKnownClientType(typeof(RemotingServer), "tcp://localhost:7778/RemotingServer");
m_serverIIOP = new RemotingServer();
При первом обращении IIOP — бахает

(.NET remoting работает идеально (странно почему

))
Как понимаю не соответствует "магическое число"
if (!((readBuffer[0] == m_giop_magic[0]) && (readBuffer[1] == m_giop_magic[1]) &&
(readBuffer[2] == m_giop_magic[2]) && (readBuffer[3] == m_giop_magic[3])))
{
// no GIOP
Trace.WriteLine("received non GIOP-Message");
//BABAH
throw new omg.org.CORBA.MARSHAL(19, omg.org.CORBA.CompletionStatus.Completed_No);
}