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

Axel Westerhold ml.awesterhold at dts.de
Wed Feb 28 02:18:47 EST 2007


One more comment,

I used XML formating but hit a brickwall because while all my entities were
properly defiend and initialized some Framework components were not. As soon
as the XML Formater found a Null within a collection, object or class it
stopped working. Since I use the binary formater my problems are gone and it
seems to work very stable (loading 100.000,00 records in one run and loading
new records in 5 sec. Intervals für 12 hours. It behaves well in my threaded
eviroment and while the server runs on Linux the client is on windows.

Axel


Am 28.02.2007 8:08 Uhr schrieb "Axel Westerhold" unter
<ml.awesterhold at dts.de>:

> 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
> 
> 
> _______________________________________________
> 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