You might want to read this: http://nirajrules.wordpress.com/2009/08/03/mtom-vs-streaming-vs-compression-%E2%80%93-large-attachments-over-wcf/
Atsushi Eno (2011/01/15 22:19), Joel Caner wrote: > Thank you for your reply. Can you tell me if there is another way to send > large data/file then?..can you provide an example of a client and service? > > Thank you again for your time. > > Cheers, > > -----Original Message----- > From: Atsushi Eno [mailto:atsushi...@veritas-vos-liberabit.com] > Sent: Saturday, January 15, 2011 3:11 AM > To: joelcaner > Cc: mono-devel-list@lists.ximian.com > Subject: Re: [Mono-dev] WCF in Mono 2.6.7 > > Not sure where the actual error occurs without stack trace, but 2.6 is > too old > for WCF to try anyways. > And Mtom is almost untested so it will cause any kind of problem (never > expected that there are actually people who use it). > > Atsushi Eno > > (2011/01/14 23:37), joelcaner wrote: >> I am having trouble getting WCF working on Mono in Suse Linux 11.3 >> I have the client as follow: >> BasicHttpBinding binding = new BasicHttpBinding(); >> binding.Security.Mode = BasicHttpSecurityMode.None; >> binding.TransferMode = TransferMode.Streamed; >> binding.MessageEncoding = WSMessageEncoding.Mtom; >> binding.MaxReceivedMessageSize = int.MaxValue; >> >> EndpointAddress address = new >> EndpointAddress("http://localhost:5800/DataUploader"); >> ChannelFactory<IDataUploader> channel = new >> ChannelFactory<IDataUploader>(binding, address); >> >> IDataUploader uploader = channel.CreateChannel(); >> >> try >> { >> >> >> uploader.Upload(File.Open(@"G:\anthem-1.5.2.zip", >> FileMode.Open, FileAccess.Read)); >> Console.WriteLine("File uploaded to the server"); >> Console.ReadLine(); >> } >> catch (Exception ex) >> { >> Console.Write(ex.Message); >> Console.ReadLine(); >> } >> finally >> { >> ((IClientChannel)uploader).Close(); >> >> >> } >> >> I have the following interface: >> [ServiceContract] >> interface IDataUploader >> { >> [OperationContract] >> void Upload(Stream data); >> } >> >> Now the service is as follow on DataUploader.cs: >> class DataUploader : IDataUploader >> >> { >> >> #region IDataUploader Members >> >> public void Upload(Stream data) >> >> { >> >> string xmlFile = @"c:\temp\uploadedfile" + ".zip"; >> >> >> >> using (FileStream fs = new FileStream(xmlFile, > FileMode.Create)) >> { >> >> int bufferSize = 1 * 1024 * 1024; // 1MB buffer >> >> byte[] buffer = new byte[bufferSize]; >> >> int bytes; >> >> >> >> while ((bytes = data.Read(buffer, 0, bufferSize))> 0) >> >> { >> >> fs.Write(buffer, 0, bytes); >> >> fs.Flush(); >> >> } >> >> } >> >> >> >> >> >> } >> >> #endregion >> >> >> >> >> >> } >> >> Now on IDataUploader.cs: >> [ServiceContract] >> >> interface IDataUploader >> >> { >> >> [OperationContract] >> >> void Upload(Stream data); >> >> } >> >> On the main.cs I have: >> public static void Main (string[] args) >> >> { >> >> ServiceHost host = new > ServiceHost(typeof(DataUploader)); >> >> >> BasicHttpBinding binding = new BasicHttpBinding(); >> >> binding.Security.Mode = BasicHttpSecurityMode.None; >> >> binding.TransferMode = TransferMode.Streamed; >> >> binding.MessageEncoding = WSMessageEncoding.Mtom; >> >> binding.MaxReceivedMessageSize = int.MaxValue; >> >> >> >> >> >> host.AddServiceEndpoint(typeof(IDataUploader), binding, new >> Uri("http://localhost:5800/DataUploader")); >> >> >> >> ServiceBehaviorAttribute attribute = >> > (ServiceBehaviorAttribute)host.Description.Behaviors[typeof(ServiceBehaviorA > ttribute)]; >> attribute.ConcurrencyMode = ConcurrencyMode.Multiple; >> >> attribute.InstanceContextMode = InstanceContextMode.Single; >> >> attribute.IncludeExceptionDetailInFaults = true; >> >> >> >> ServiceThrottlingBehavior throttling = new >> ServiceThrottlingBehavior(); >> >> throttling.MaxConcurrentSessions = 24; >> >> throttling.MaxConcurrentCalls = 24; >> >> >> >> host.Description.Behaviors.Add(throttling); >> >> >> >> host.Open(); >> >> >> >> Console.WriteLine("Service Hosted ..."); >> >> Console.ReadKey(); >> >> host.Close(); >> >> } >> I have both client and service running on the same system. I get an error: >> Object reference not set to an instance of an object error. When I run a >> client on a windows system and the service on the linux system I get "bad >> request(400) error. Can someone help me understand what I am missing? > > _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list