[Mono-list] .net remoting problem with object sending

Axel Westerhold ml.awesterhold at dts.de
Wed Feb 28 02:08:53 EST 2007


Hi there,

Don't get me wrong. You can use a binary formater AND an HTTP channel.

Like this

Server

HttpChannel hc;
BinaryServerFormatterSinkProvider sbf = new
BinaryServerFormatterSinkProvider();
BinaryClientFormatterSinkProvider cbf = new
BinaryClientFormatterSinkProvider();
IDictionary properties = new Hashtable();
properties["port"] = port;
                  
if( !fqdn.Equals("") ){
    properties["machineName"] = fqdn;
}
else{
    Helper.ErrorLog("ManageMail DB Provider using IP as no fqdn found");

}
hc=new HttpChannel(properties,cbf,sbf);

ChannelServices.RegisterChannel(hc,false);
RemotingConfiguration.ApplicationName="DBAbstract";
RemotingConfiguration.RegisterActivatedServiceType(typeof(DBAbstract));

Client

try{
   BinaryServerFormatterSinkProvider sbf = new
BinaryServerFormatterSinkProvider();
                
BinaryClientFormatterSinkProvider cbf = new
BinaryClientFormatterSinkProvider();
IDictionary properties = new Hashtable();
properties["name"] = "ManageMail LogViewer";
ChannelServices.RegisterChannel(new HttpChannel(properties,cbf,sbf),false);
                
RemotingConfiguration.RegisterActivatedClientType(typeof(DBAbstract),dbInfo.
GetRemotingString());
            }
catch{
                Application.Exit();
                return;
            }

Regards, 
Axel


Am 28.02.2007 7:52 Uhr schrieb "Mirek Binas" unter
<Miroslav.Binas at cnl.tuke.sk>:

> hello
> 
> yes - i am using the http channel for remoting. the problematic object
> consists of four attributes, and all of them are initialized. hmm... i'll try
> to play a bit, if this is the problem.
> 
> and - i was trying to use tcp channel for this purpose, but at the very first
> begging with problems, so because of this i switched to http. but - i'll try
> it again, if this should be the problem.
> 
> mirek
> On Wed, Feb 28, 2007 at 07:40:03AM +0100, Axel Westerhold wrote:
>> 
>> Hi there,
>> 
>> I am a little guessing here but it sounds as if you would using XML/SOAP/WEB
>> kind of remoting. In this case make sure each and every variable in your
>> object/class/struct is defined and initialized.
>> 
>> You can also switch to a binary formater which will solve this issue too but
>> will break access through proxy.
>> 
>> Regards,
>> Axel
>> 
>> Am 28.02.2007 4:40 Uhr schrieb "Mirek Binas" unter
>> <Miroslav.Binas at cnl.tuke.sk>:
>> 
>>> hello
>>> 
>>> i am trying to develop application with .net remoting for communication. at
>>> the moment - everything is well, but when i want to send object, that is not
>>> one of the default types, the exception raised:
>>> 
>>> Unhandled Exception: System.NullReferenceException: Object reference not set
>>> to an instance of an object
>>> 
>>> the object is not null (checked line before call of the remote method). and
>>> in
>>> the declaration of the class it is marked as [Serializable]. don't know,
>>> what
>>> is the problem about. any idea?
>>> 
>>> mirek
>>> 
>>> p.s.: the complete exception
>>> 
>>> Unhandled Exception: System.NullReferenceException: Object reference not set
>>> to an instance of an object
>>> 
>>> Server stack trace:
>>>   at System.Runtime.Remoting.Channels.SimpleBinder.BindToType (System.String
>>> assemblyName, System.String typeName) [0x00000]
>>>   at System.Runtime.Serialization.Formatters.Soap.SoapTypeMapper.GetType
>>> (System.String xmlName, System.String xmlNamespace) [0x00000]
>>>   at System.Runtime.Serialization.Formatters.Soap.SoapReader.Deserialize ()
>>> [0x00000] 
>>>   at System.Runtime.Serialization.Formatters.Soap.SoapReader.Deserialize
>>> (System.IO.Stream inStream, ISoapMessage soapMessage) [0x00000]
>>>   at System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize
>>> (System.IO.Stream serializationStream,
>>> System.Runtime.Remoting.Messaging.HeaderHandler handler) [0x00000]
>>>   at System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize
>>> (System.IO.Stream serializationStream) [0x00000]
>>>   at System.Runtime.Remoting.Channels.SoapServerFormatterSink.ProcessMessage
>>> (IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders
>>> requestHeaders, System.IO.Stream requestStream, IMessage& responseMsg,
>>> ITransportHeaders& responseHeaders, System.IO.Stream& responseStream)
>>> [0x00000] 
>>> 
>>> Exception rethrown at [0]:
>>> 
>>>   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke
>>> (System.Runtime.Remoting.Proxies.RealProxy rp, IMessage msg,
>>> System.Exception&
>>> exc, System.Object[]& out_args) [0x00000]
>> 
>> 
>> _______________________________________________
>> Mono-list maillist  -  Mono-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-list




More information about the Mono-list mailing list